private void ExportViaPDFSharp(bool bExportAllLayouts)
{
var zQuery = new QueryPanelDialog("Export to PDF (via PDFSharp)", 750, false);
zQuery.SetIcon(Icon);
const string ORIENTATION = "orientation";
const string OUTPUT_FILE = "output_file";
const string OPEN_ON_EXPORT = "open_on_export";
zQuery.AddPullDownBox("Page Orientation",
new string[]
{
PageOrientation.Portrait.ToString(),
PageOrientation.Landscape.ToString()
},
m_nPdfExportLastOrientationIndex,
ORIENTATION);
zQuery.AddFileBrowseBox("Output File", m_sPdfExportLastFile, "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*", OUTPUT_FILE);
zQuery.AddCheckBox("Open PDF on Export", m_bPdfExportLastOpen, OPEN_ON_EXPORT);
if (DialogResult.OK != zQuery.ShowDialog(this))
{
return;
}
var nStartLayoutIdx = 0;
var nEndLayoutIdx = ProjectManager.Instance.LoadedProject.Layout.Length;
if (!bExportAllLayouts)
{
int nIdx = ProjectManager.Instance.GetLayoutIndex(LayoutManager.Instance.ActiveLayout);
if (-1 == nIdx)
{
FormUtils.ShowErrorMessage("Unable to determine the current layout. Please select a layout in the tree view and try again.");
return;
}
nStartLayoutIdx = nIdx;
nEndLayoutIdx = nIdx + 1;
}
m_sPdfExportLastFile = zQuery.GetString(OUTPUT_FILE);
m_bPdfExportLastOpen = zQuery.GetBool(OPEN_ON_EXPORT);
m_nPdfExportLastOrientationIndex = zQuery.GetIndex(ORIENTATION);
if (!m_sPdfExportLastFile.EndsWith(".pdf", StringComparison.CurrentCultureIgnoreCase))
{
m_sPdfExportLastFile += ".pdf";
}
var zFileCardExporter = new PdfSharpExporter(nStartLayoutIdx, nEndLayoutIdx, m_sPdfExportLastFile, zQuery.GetString(ORIENTATION));
var zWait = new WaitDialog(
2,
zFileCardExporter.ExportThread,
"Export",
new string[] { "Layout", "Card" },
450);
#if true
zWait.ShowDialog(this);
#else
zFileCardExporter.ExportThread();
#endif
if (zWait.ThreadSuccess &&
m_bPdfExportLastOpen &&
File.Exists(m_sPdfExportLastFile))
{
Process.Start(m_sPdfExportLastFile);
}
}