我已经使用这个代码10多年了,它突然停止工作。该程序读取一个pdf文件列表,并输出一个包含列表中所有文件的pdf文件。它使用gsapi.pas包装单元。多年来,我只需要从Ghostscript.t下载一个更新版本的gsdll32.dll文件,就可以兼容更新版本的pdf文件格式。但它已经不起作用了

有什么想法吗?

procedure PDFMerge(input : Array of String;output : string);

var
code:integer;
instance:Pointer;
argv:PPChar;

N,I : smallint;
begin
new(instance);
N:=length(input);
setlength(argv,6+N);
code:=gsapi_new_instance(@instance,nil);
if code<>0 then
  begin
  raise Exception.Create('Impossible to open an instance of ghostscript. Error code: '+IntToStr(code));
  end;

  try
  //try adding dNothing as first parameter argv[1] := pchar('dNothing');
  argv[0] := pchar('AppendPdf');
  argv[1] := pchar('-dNOPAUSE');
  argv[2] := pchar('-dBATCH');
  argv[3] := pchar('-dSAFER');
  argv[4] := pchar('-sDEVICE=pdfwrite');
  argv[5] := pchar('-sOutputFile='+ output);
  argv[6] := pchar('-c');
  argv[7] := pchar('.setpdfwrite');
  argv[8] := pchar('-f');
  for I := 0 to N - 1 do
  argv[9+I] := pchar(input[I]);

  //Call gs32.dll
  code := gsapi_init_with_args(instance, length(argv), argv);
  if code<0 then
   raise Exception.Create('ERROR: init_args: '+IntToStr(code));
  gsapi_exit(instance);
  gsapi_delete_instance(instance);

  finally
  end;
end;

我正在使用Ghostscript V10.0。我发现他们有了一个新的翻译,也许这与此有关?虽然我确实尝试了添加开关“-dNEWPDF=false”,但没有运气。我一直收到错误代码-100。

请注意,在Ghostscript中使用等效的命令行本身效果良好。在我看来,他们改变了调用API的方式。这会是什么情况?

如果有任何帮助,我将不胜感激。

我确实尝试了添加开关“-dNEWPDF=false”,但没有成功。

通过gsdll32.dll与Delphi 11组合PDF的更多相关文章

  1. ios – 我在哪里可以找到用于创建IPad应用程序的Delphi资源?

    我之前一直在使用Delphi并且一直都是Windows家伙.我的妻子为我的生日买了一台新的iPad,我昨晚第一次使用它.哇!…

  2. 如何从命令行部署OSX或IOS Delphi项目?

    我正在使用像这样的脚本构建我的Delphi应用程序现在我想添加一个选项将应用程序部署到OSX系统修改这样的脚本,那么可以从命令行部署OSX或IOSDelphi项目吗?

  3. 如何检查Android和iOS上的网络是否可用(Delphi XE5)

    解决方法试试这个:

  4. 使用嵌套线程错误终止应用程序

    如果我使用一个启动了嵌套线程的线程,那么终止应用程序时会遇到问题。如果最深的嵌套线程卡住,则应用程序终止时会发生错误。在其他情况下,问题不会出现。据我所知,tSync.Free不会等待TCP.Connect完成并自行关闭。TCP.Connection在超时结束后无处返回。

  5. 通过gsdll32.dll与Delphi 11组合PDF

    我已经使用这个代码10多年了,它突然停止工作。该程序读取一个pdf文件列表,并输出一个包含列表中所有文件的pdf文件。它使用gsapi.pas包装单元。多年来,我只需要从Ghostscript.t下载一个更新版本的gsdll32.dll文件,就可以兼容更新版本的pdf文件格式。我发现他们有了一个新的翻译,也许这与此有关?请注意,在Ghostscript中使用等效的命令行本身效果良好。在我看来,他们改变了调用API的方式。如果有任何帮助,我将不胜感激。我确实尝试了添加开关“-dNEWPDF=false”,但

  6. 如何处理Windows 7的125%或150%放大率(Delphi)

    Windows7已添加其控制面板,外观和个性化,显示设置,放大文本和其他项目125%或150%的功能.完成后,我的Delphi2009程序的表单和对话框的一些内容被切断.我需要做些哪些更改才能确保在Windows7的任何放大设置下,我的所有表单和对话框都能正常显示.这听起来像是指文本大小设置,它在Windows中以各种形式存在多年,Delphi形成了与此设置的交互以及它们的自动缩放.我没有在这里检

  7. Windows 10中的内存泄漏Delphi Seattle中的TNotification?

    我正在我的应用程序中实现Windows10通知.但是,下面的代码显然会给出1个TNotification对象和2个字符串的备忘录泄漏,但我在块的末尾释放了对象:我做了一些愚蠢的事情,或者在通知的实施中是否存在内存泄漏?

  8. windows – Delphi中的跨应用程序拖放

    我想为WindowsXP创建一个Delphi应用程序,它允许删除从Windows资源管理器或其他支持此操作的应用程序拖动的文件.反之亦然?当用户从我的应用程序中拖动图标时,我应该能够将拖动对象的内容设置为自定义数据.我的目标是创建一个自定义应用程序工具栏,我可以在其上删除应用程序并显示其图标或从中拖动应用程序或其他实体.如何才能做到这一点?

  9. windows – 我需要避免尝试更新连接到TSQLQuery的Delphi TClientDataset中的非物理字段

    Precis:我的代码试图更新DelphiXETClientDataset中的非物理字段(连接到带有sql属性集的TsqlQuery),这些字段是作为运行时Open命令创建的.我有一个连接到连接到TsqlConnection的TsqlQuery的TDatasetProvider的TClientDataset.这些对象中的前3个被封装在库中的几个类中,我在几个项目的许多地方使用它们.这些类在运行时创

  10. 是默认情况下能够处理vista / win7 UAC的delphi 2010程序

    或者你必须自己包括它?如果是,给你什么级别的特权?我的程序修改了一个注册密钥,它可以在没有对.res文件进行任何修改的情况下这样做吗?一个附带问题:是否有一个组件/专家可以像delphi2010一样自动生成/包含.res文件在我的delphi7和delphi2007项目中?

随机推荐

  1. 如何扩展ATmega324PB微控制器的以下宏寄存器?

    我目前正在学习嵌入式,我有以下练习:展开以下宏寄存器:如果有人解决了这个问题,我将不胜感激,以便将来参考

  2. Python将ONNX运行时设置为返回张量而不是numpy数组

    在python中,我正在加载预定义的模型:然后我加载一些数据并运行它:到目前为止,它仍在正常工作,但我希望它默认返回Tensor列表,而不是numpy数组。我对ONNX和PyTorch都是新手,我觉得这是我在这里缺少的基本内容。这将使转换中的一些开销相同。

  3. 在macOS上的终端中使用Shell查找文件中的单词

    我有一个文本文件,其中有一行:我需要找到ID并将其提取到变量中。我想出了一个RexEx模式:但它似乎对我尝试过的任何东西都不起作用:grep、sed——不管怎样。我的一个尝试是:我为这样一个看似愚蠢的问题感到抱歉,但我在互联网上找不到任何东西:我在SO和SE上读了几十个类似的问题,并在谷歌上搜索了几个教程,但仍然无法找到答案。欢迎提供任何指导!

  4. react-chartjs-2甜甜圈图中只有标题未更新

    我正在使用react-chartjs-2在我的网站中实现甜甜圈图。下面是我用来呈现图表的代码。我将甜甜圈图的详细信息从父组件传递到子组件,所有道具都正确传递。当我在beforeDraw函数外部记录props.title时,它会记录正确的值,但当我在beforeDraw函数内部记录props.title时,它将记录标题的前一个值,从而呈现标题的前值。我在这里做错了什么?

  5. 如何在tkinter中使用Python生成器函数?

    生成器函数承诺使某些代码更易于编写。但我并不总是知道如何使用它们。假设我有一个斐波那契生成器函数fib(),我想要一个显示第一个结果的tkinter应用程序。当我点击“下一步”按钮时,它会显示第二个数字,依此类推。我如何构建应用程序来实现这一点?我可能需要在线程中运行生成器。但如何将其连接回GUI?

  6. 如何为每次提交将存储库历史记录拆分为一行?

    我正在尝试获取存储库的历史记录,但结果仅以单行文本的形式返回给我。

  7. 尝试在颤振项目上初始化Firebase时出错

    当尝试在我的颤振项目上初始化firebase时,我收到了这个错误有人知道我能做什么吗?应用程序分级Gradle插件Gradle项目颤振相关性我已经将firebase设置为Google文档已经在另一个模拟器上尝试过,已经尝试过创建一个全新的模拟器,已经在不同的设备上尝试过了,已经尝试了特定版本的firebase,已经尝试添加但没有任何效果,已经在youtube上看到了关于它的每一个视频,该应用程序在android和iOS两个平台上都抛出了这个错误

  8. 在unix中基于当前日期添加新列

    我试图在unix中基于时间戳列在最后一个单元格中添加一个状态列。我不确定如何继续。

  9. 麦克斯·蒙特利。我一直得到UncaughtReferenceError:当我在终端中写入node-v时,节点未定义

    如果这是您应该知道的,请确认:我已将所有shell更改为默认为zsh。当我在终端中写入node-v时,我一直收到“UncaughtReferenceError:nodeisnotdefined”。但它显示节点已安装。我是个新手,在这方面经验不足。

  10. 如何在前端单击按钮时调用后端中的函数?

    那么如何在后端添加一个新的端点,点击按钮调用这个函数。

返回
顶部