refactoring Pdf generation

This commit is contained in:
Paul Schneider 2016-11-30 11:01:22 +01:00
commit 94ddffd5b2
3 changed files with 102 additions and 80 deletions

View file

@ -4,47 +4,19 @@
@using System.Diagnostics
@using System.Text
@using Yavsc.Formatters
@using Yavsc.Helpers
@model Yavsc.ViewModels.Gen.PdfGenerationViewModel
@{
string errorMsg = null;
var billdir = Model.DestDir;
var tempdir = Startup.SiteSetup.TempDir;
string name = Model.BaseFileName;
string fullname = new FileInfo(
System.IO.Path.Combine(tempdir,name)).FullName;
string ofullname = new FileInfo(
System.IO.Path.Combine(billdir,name)).FullName;
FileInfo fi = new FileInfo(fullname + ".tex");
FileInfo fo = new FileInfo(ofullname + ".pdf");
using (StreamWriter sw = new StreamWriter (fi.FullName))
{
sw.Write (Model.TeXSource);
}
if (!fi.Exists)
{
errorMsg = "Source write failed";
}
else {
using (Process p = new Process ()) {
p.StartInfo.WorkingDirectory = tempdir;
p.StartInfo = new ProcessStartInfo ();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "/usr/bin/texi2pdf";
p.StartInfo.Arguments = $"--batch --build-dir=. -o {fo.FullName} {fi.FullName}";
p.Start ();
p.WaitForExit ();
if (p.ExitCode != 0) {
errorMsg = $"Pdf generation failed with exit code: {p.ExitCode}";
}
}
fi.Delete();
}
ViewBag.GenSuccess = fo.Exists;
@{
Model.GenerateEstimatePdf();
}
@if (ViewBag.GenSuccess) {
@($"{name}.pdf")
@if (Model.Generated) {
<div>
@(Model.BaseFileName).pdf was generated
</div>
} else {
@errorMsg
<text>Something went wrong ...</text>
<div class="error">
@Model.GenerationErrorMessage
<p>Something went wrong ...</p>
</div>
}