240 lines
7.7 KiB
C#
240 lines
7.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using Volian.Print.Library;
|
|
using VEPROMS.CSLA.Library;
|
|
using Volian.Base.Library;
|
|
|
|
namespace VEPROMS
|
|
{
|
|
public partial class frmPDFStatusForm : Form
|
|
{
|
|
private bool _CancelPrinting = false;
|
|
public bool CancelPrinting
|
|
{
|
|
get { return _CancelPrinting; }
|
|
set { _CancelPrinting = value; }
|
|
}
|
|
private bool _CloseWhenDone = false;
|
|
public bool CloseWhenDone
|
|
{
|
|
get { return _CloseWhenDone; }
|
|
set { _CloseWhenDone = value; }
|
|
}
|
|
private bool _CancelStop = false;
|
|
public bool CancelStop
|
|
{
|
|
get { return _CancelStop; }
|
|
set { _CancelStop = value; }
|
|
}
|
|
private bool _Stop = false;
|
|
public bool Stop
|
|
{
|
|
get { return _Stop; }
|
|
set { _Stop = value; }
|
|
}
|
|
private string _PDFPath;
|
|
|
|
public string PDFPath
|
|
{
|
|
get { return _PDFPath; }
|
|
set { _PDFPath = value; }
|
|
}
|
|
private PromsPrinter _MyPromsPrinter;
|
|
|
|
public PromsPrinter MyPromsPrinter
|
|
{
|
|
get { return _MyPromsPrinter; }
|
|
set { _MyPromsPrinter = value; }
|
|
}
|
|
|
|
private bool _OpenPDF;
|
|
|
|
public bool OpenPDF
|
|
{
|
|
get { return _OpenPDF; }
|
|
set { _OpenPDF = value; }
|
|
}
|
|
private Point _NewLocation;
|
|
private string _Prefix = ""; // RHM20150506 Multiline ItemID TextBox
|
|
public string Prefix
|
|
{
|
|
get { return _Prefix; }
|
|
set { _Prefix = value; }
|
|
}
|
|
// this flag is used when the Continuous Action Sumamry is printed from the tree or ribbon button
|
|
// it will prevent the temporary PDF (generated with printing - needed to get page numbers) from being displayed
|
|
// and will delete that temporary PDF file
|
|
private bool _OnlyShowContinuousActionSummary = false;
|
|
public bool OnlyShowContinuousActionSummary
|
|
{
|
|
get { return _OnlyShowContinuousActionSummary; }
|
|
set { _OnlyShowContinuousActionSummary = value; }
|
|
}
|
|
public frmPDFStatusForm(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, bool openPDF, bool overWrite, string pdfPath, ChangeBarDefinition cbd,string pdfFile, Point newLocation,bool insertBlankPages, bool allOrAuto, string prefix, bool saveLinks)
|
|
{
|
|
Prefix = prefix;
|
|
OpenPDF = openPDF;
|
|
InitializeComponent();
|
|
// if the version number of PROMS is 1.0, then we are running a Demo version.
|
|
// When running a Demo version, force a "Sample" watermark when printing.
|
|
MyPromsPrinter = new PromsPrinter(myItem, rev, (VlnSettings.ReleaseMode.Equals("DEMO")) ? "Sample" : watermark, debugOutput, origPgBrk, pdfPath + @"\\Compare", false, overWrite, cbd, pdfFile, insertBlankPages, allOrAuto,Prefix,saveLinks);
|
|
PDFPath = pdfPath;
|
|
this.Text = "Creating PDF of " + myItem.DisplayNumber;
|
|
_NewLocation = newLocation;
|
|
DialogResult = DialogResult.OK;
|
|
}
|
|
public bool AllowAllWatermarks
|
|
{
|
|
get { return MyPromsPrinter.AllowAllWatermarks; }
|
|
set { MyPromsPrinter.AllowAllWatermarks = value; }
|
|
}
|
|
void pp_StatusChanged(object sender, PromsPrintStatusArgs args)
|
|
{
|
|
if (args.Type == PromsPrinterStatusType.ProgressSetup)
|
|
pb.Maximum = args.Progress;
|
|
else if (args.Type == PromsPrinterStatusType.Progress)
|
|
{
|
|
pb.Value = args.Progress;
|
|
if (args.Progress == pb.Maximum)
|
|
pb.Text = args.MyStatus;
|
|
else
|
|
pb.Text = string.Format("Processing {0} ({1} of {2})", args.MyStatus, args.Progress + 1, pb.Maximum);
|
|
}
|
|
MyStatus = args.MyStatus;
|
|
Application.DoEvents();
|
|
}
|
|
public string MyStatus
|
|
{
|
|
get { return lblStatus.Text; }
|
|
set { lblStatus.Text = value; Application.DoEvents(); }
|
|
}
|
|
|
|
private void frmPDFStatusForm_Load(object sender, EventArgs e)
|
|
{
|
|
Location = _NewLocation;
|
|
tmrRun.Enabled = true;
|
|
if (MakeContinuousActionSummary)
|
|
Text = Text.Replace("PDF", "Continuous Action Summary");
|
|
}
|
|
|
|
private string _PdfFile;
|
|
|
|
private bool _MakePlaceKeeper = false;
|
|
|
|
public bool MakePlaceKeeper
|
|
{
|
|
get { return _MakePlaceKeeper; }
|
|
set { _MakePlaceKeeper = value; }
|
|
}
|
|
|
|
private bool _MakeContinuousActionSummary = false;
|
|
|
|
public bool MakeContinuousActionSummary
|
|
{
|
|
get { return _MakeContinuousActionSummary; }
|
|
set { _MakeContinuousActionSummary = value; }
|
|
}
|
|
|
|
private void tmrRun_Tick(object sender, EventArgs e)
|
|
{
|
|
tmrRun.Enabled = false;
|
|
if (CancelStop) btnCancel.Visible = true;
|
|
Application.DoEvents();
|
|
MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
|
|
DateTime tStart = DateTime.Now;
|
|
if (!CancelStop) PromsPrinter.ClearTransPageNumProblems();
|
|
do
|
|
{
|
|
int profileDepth = ProfileTimer.Push(">>>> MyPromsPrinter.Print");
|
|
_PdfFile = MyPromsPrinter.Print(PDFPath, MakePlaceKeeper, MakeContinuousActionSummary);
|
|
ProfileTimer.Pop(profileDepth);
|
|
}
|
|
while (_PdfFile == null && MessageBox.Show("Try Again?", "PDF Creation Failed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
|
|
if (_PdfFile == null)
|
|
{
|
|
this.Close();
|
|
return;
|
|
}
|
|
if (!CancelStop)
|
|
{
|
|
if (PromsPrinter.ReportTransPageNumProblems() == DialogResult.Yes && MyPromsPrinter.BeforePageNumberPdf != null)
|
|
{
|
|
System.Diagnostics.Process.Start(MyPromsPrinter.BeforePageNumberPdf);
|
|
}
|
|
}
|
|
DateTime tEnd = DateTime.Now;
|
|
MyStatus = _PdfFile + " created.";
|
|
MyStatus = string.Format("{0} created in {1:0.} milliseconds", _PdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
|
|
if (OpenPDF)
|
|
{
|
|
OpenPDFandPlacekeeper(_PdfFile);
|
|
this.Close();
|
|
return;
|
|
}
|
|
btnOpenFolder.Visible = btnOpenPDF.Visible = true;
|
|
|
|
if (CloseWhenDone)
|
|
{
|
|
OpenPDFandPlacekeeper(null);
|
|
this.Close();
|
|
return;
|
|
}
|
|
}
|
|
private void btnOpenPDF_Click(object sender, EventArgs e)
|
|
{
|
|
OpenPDFandPlacekeeper(_PdfFile);
|
|
this.Close();
|
|
}
|
|
// set a delay so that the word document containing the newly generated placekeeper will appear on top of everything else.
|
|
// - requested by Calvert Cliffs
|
|
private void OpenPDFandPlacekeeper(string pdffile)
|
|
{
|
|
if ((pdffile ?? "") != "" && !OnlyShowContinuousActionSummary)
|
|
{
|
|
System.Diagnostics.Process sdp = System.Diagnostics.Process.Start(pdffile);
|
|
sdp.WaitForInputIdle();
|
|
}
|
|
if (OnlyShowContinuousActionSummary)
|
|
System.IO.File.Delete(pdffile); // remove the temporary PDF file used to create the Continuous Action Summary
|
|
if (MyPromsPrinter.MyPlacekeeper != null)
|
|
{
|
|
// The PlacekeeperDelay is a switch that can be added to the PROMS.exe shortcut
|
|
// ex: VEPROMS.EXE /PlacekeeperDelay=2.5 will delay it 2 1/2 seconds
|
|
float delay = Volian.Base.Library.VlnSettings.GetCommandFloat("PlacekeeperDelay", 3.0f);
|
|
int mydelay =(int) (1000 * delay);
|
|
System.Threading.Thread.Sleep(mydelay);
|
|
MyPromsPrinter.MyPlacekeeper.Visible();
|
|
}
|
|
// this will display the generated Continuous Action Summary in MS Word (starting a new instance of MS Word outside of PROMS)
|
|
if (MyPromsPrinter.MyContActSummary != null)
|
|
{
|
|
string instructions = "The Continuous Action Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section.";
|
|
MessageBox.Show(instructions, "Continuous Action Summary");
|
|
// The ContActSummaryDelay is a switch that can be added to the PROMS.exe shortcut
|
|
// ex: VEPROMS.EXE /ContActSummaryDelay=2.5 will delay it 2 1/2 seconds
|
|
float delay = Volian.Base.Library.VlnSettings.GetCommandFloat("ContActSummaryDelay", 1.0f);
|
|
int mydelay = (int)(1000 * delay);
|
|
System.Threading.Thread.Sleep(mydelay);
|
|
MyPromsPrinter.MyContActSummary.Visible();
|
|
}
|
|
|
|
}
|
|
private void btnOpenFolder_Click(object sender, EventArgs e)
|
|
{
|
|
System.Diagnostics.Process.Start("Explorer", "/select," + _PdfFile);
|
|
OpenPDFandPlacekeeper(null);
|
|
this.Close();
|
|
}
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
CancelPrinting = true;
|
|
btnCancel.Text = "Cancelled";
|
|
btnCancel.Enabled = false;
|
|
}
|
|
}
|
|
} |