Code: Select all
void Init()
{
if (Inst != null) return;
Inst = new PDFXEdit.PXV_Inst();
Inst.Init(null, licKeyEdit, (IString)null, (IString)null, (IString)null);
Inst.StartLoadingPlugins();
Inst.AddPluginFromFile($@"{plugInLoadPath}\ConvertPDF.pvp");
Inst.AddPluginFromFile($@"{plugInLoadPath}\PDFAPlugin.pvp");
Inst.FinishLoadingPlugins();
}
static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private void Convert_toPDFA(PDFXEdit.PXV_Inst Inst)
{
var quelle = @"C:\nora\22.pdf";
var ziel = @"C:\NoRA\22_pdfa.pdf";
if (!File.Exists(quelle)) return;
if (File.Exists(ziel)) File.Delete(ziel);
try
{
PDFXEdit.IPXV_ExportConverter cnv = null;
for (uint i = 0; i < Inst.ExportConvertersCount; i++)
{
if (Inst.ExportConverter[i].ID != "conv.exp.pdfa") continue;
cnv = Inst.ExportConverter[i];
break;
}
if (cnv == null)
{
return;
}
var cab = Inst.GetFormatConverterParams(false, "conv.exp.pdfa");
var Format = PDFAFormat.PDFA_1B;
PDFXEdit.ICabNode convParamsRoot = cab.Root;
var format = Format.ToString();
var z = format.Substring(format.IndexOf('_') + 1, 2);
int partIndex;
int conformanceIndex;
switch (z[0])
{
case '1':
partIndex = 1;
break;
case '3':
partIndex = 3;
break;
default:
partIndex = 2;
break;
}
switch (z[1])
{
case 'A':
conformanceIndex = 0;
break;
case 'U':
conformanceIndex = 2;
break;
default:
conformanceIndex = 1;
break;
}
convParamsRoot.SetInt("Part", partIndex);
convParamsRoot.SetInt("Conformance", conformanceIndex);
convParamsRoot.SetInt("ShowReport", 0);
convParamsRoot.SetString("ErrorMessage", "true");
IAFS_Inst fsInst = Inst.GetExtension("AFS");
var destPath = fsInst.DefaultFileSys.StringToName(ziel);
const int openFileFlags = (int)(AFS_OpenFileFlags.AFS_OpenFile_CreateAlways |
AFS_OpenFileFlags.AFS_OpenFile_Read |
AFS_OpenFileFlags.AFS_OpenFile_Write |
AFS_OpenFileFlags.AFS_OpenFile_FullCache);
var destFile = fsInst.DefaultFileSys.OpenFile(destPath, openFileFlags);
IPXC_Inst docInst = (PXC_Inst)Inst.GetExtension("PXC");
var srcDoc = docInst.OpenDocumentFromFile(quelle, null);
try
{
log.Info("Convert 1");
cnv.Convert(Inst, srcDoc, destFile, 0, cab);//->No return !!!!
log.Info("Convert 2");->
}
catch (Exception exp)
{
Inst.ClearHistory(true);
destFile.Close();
srcDoc.Close();
}
Inst.ClearHistory(true);
destFile.Close();
srcDoc.Close();
}
catch (Exception exp)
{
MessageBox.Show($"{exp.Message}\r\n{exp.StackTrace}");
}
}
With many PDF it runs, but with some it hangs completely.
At most confidential but not here in forum.
PDF file itself, can not provide so not so (is customer file).
I urgently need your help!!!