1

我用 C# 制作了一个小应用程序,它使用 Adob​​e Acrobat SDK 将 PDF 文件转换为 PDF/A。

SaveAs以这种方式使用了 SDK 中包含的 JavaScript 函数:

var pdfDocument = new AcroPDDoc();
pdfDocument.Open(fileInfo.FullName);
object pdfJavascriptObject = pdfDocument.GetJSObject();
Type jsType = pdfJavascriptObject.GetType();

// FinalExtension is either jpg or pdf (depends of convId)
var outputFileName = fileInfo.Name.Replace(fileInfo.Extension, "." + finalExtension);
var finalFullName = Path.Combine(outputFolderPath, outputFileName);

// AdobeConvId is either com.callas.preflight.pdfa either com.adobe.acrobat.jpeg
object[] saveAsParam = { finalFullName, adobeConvId, string.Empty, false, false };
// Use Javascript Object SaveAs Method
jsType.InvokeMember(StringConstants.AcrobatSaveAsMethod
                        , BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance
                        , null
                        , pdfJavascriptObject
                        , saveAsParam
                        , CultureInfo.InvariantCulture);
pdfDocument.Close();

它在 Adob​​e Acrobat Professional X 上运行良好,但现在我必须使用 Adob​​e Acrobat Professional XI/DC。我已经升级了 SDK 的 DLL,但它不起作用。

有一个“进度”消息闪烁,好像有大量文档要转换,并且该过程永远不会结束。

但是,当我转换为 JPG 文件时,此代码可以正常工作(相同的代码只是更改了convId.

你知道我能从那里做什么吗?...

如果“SaveAs”方法是 NoGo,我听说过预检,但我不知道如何在 C# 代码中使用它们。

4

0 回答 0