使用 GhostScript 将 PDF 转换为服务器上的图像集合

2023-12-11

这些是我试图实现的步骤:

  1. 在服务器上上传 PDF 文档。
  2. 使用 GhostScript 将 PDF 文档转换为一组图像(每个页面都转换为图像)。
  3. 将图像集合发送回客户端。

到目前为止,我感兴趣的是#2.

首先,我下载了两个gswin32c.exe and gsdll32.dll并设法手动将 PDF 转换为图像集合(我打开cmd并运行以下命令):

gswin32c.exe -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=image_%d.jpg somepdf.pdf

然后我想,我会把gswin32c.exe and gsdll32.dll进入我的网络项目的 ClientBin,并通过进程运行 .exe。

System.Diagnostics.Process process1 = new System.Diagnostics.Process();
process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
process1.StartInfo.FileName = Request.MapPath("ClientBin/gswin32c.exe"); 
process1.StartInfo.Arguments = "-dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=image_%d.jpg somepdf.pdf"
process1.Start(); 

不幸的是,ClientBin 中没有输出任何内容。有人知道为什么吗?任何建议都将受到高度赞赏。


我已经尝试过你的代码,它似乎工作正常。我建议检查以下事项:

  1. 验证您的 somepdf.pdf 是否位于 gs 进程的工作文件夹中,或在命令行中指定该文件的完整路径。通过执行以下操作来查看 Ghostscript 的输出也很有用:

    .... process1.StartInfo.RedirectStandardOutput = true; process1.StartInfo.UseShellExecute = false; 进程1.Start(); // 读取输出 字符串输出 = process1.StandardOutput.ReadToEnd(); ... process1.WaitForExit(); ...

    如果 gs 找不到您的文件,您将在输出流中收到“Error: /undefinedfilename in (somepdf.pdf)”。

  2. 另一个建议是您继续执行脚本,而无需等待 gs 进程完成并生成结果 image_N.jpg 文件。我想添加 process1.WaitForExit 应该可以解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GhostScript 将 PDF 转换为服务器上的图像集合 的相关文章

  • .NET Core 中 appsettings.json 设置的继承

    我正在努力实现这样的目标 BaseSettings 具有所有其他部分通用的设置 Child1Settings 拥有所有 BaseSettings Child1Settings Child2Settings 拥有所有 BaseSettings
  • 如何在C#和Azure启动任务中自动更新EXE项目?

    我在我的天蓝色相关项目中面临着一个关键且有趣的问题 我创建了一个 Web 应用程序 用户可以从那里下载一个插件 C 中的 EXE 项目 并在解压后上传 EXE 和配置文件到部署在 Azure 平台上的应用程序的启动任务 并且该 exe 定期
  • 为什么微软在 .net 3.5 SP1 之前就废弃了 JavaScriptSerializer,而在 .net 3.5 SP1 之后又重新启用了 JavaScriptSerializer?

    JavaScriptSerializer 在 net 3 5 SP1 之后并没有过时 我应该使用 JavaScriptSerializer 还是之前推荐的 DataContractJsonSerializer 还有为什么它被淘汰了 我很乐意
  • 如何对ArrayList(int)进行排序

    我怎样才能排序Arraylist按升序和降序排列 例子 ArrayList list new ArrayList list Add 2 list Add 8 list Add 0 list Add 1 如何按升序和降序对上面的列表进行排序
  • Response.Write - Internet Explorer 中的文件名编码错误

    我使用以下代码将文件从服务器发送到客户端 Response AppendHeader content disposition attachment filename FileName Response ContentType MimeTyp
  • 如何在审计触发器中使用system_user但仍使用连接池?

    我想做以下两件事 在我的数据库表上使用审计触发器来识别哪个用户更新了什么 使用连接池来提高性能 对于 1 我在数据库触发器中使用 system user 来识别进行更改的用户 但这阻止我执行需要通用连接字符串的 2 有没有一种方法可以让我充
  • 如何像web.config一样转换log4net配置?

    从我的 csproj 文件
  • 打印带有图像的 html(每个图像在单独的页面上)

    我有一个带有图像的 HTML img img img img 打印时 我希望每个图像都位于单独的页面上 根据打印尺寸 现在我把图像从中间切掉了 有什么办法可以解决吗 您可以尝试以下方法 p p
  • ASP.NET 中的回发问题

    我有一个 asp net 标签控件 其 Visible 属性设置为 false 在后面的代码中 我根据用户是否已登录将其可见性设置为 true false 一个奇怪的行为是 在回发时 代码隐藏执行并将标签可见性的值设置为任意值 然后标记执行
  • Visual Studio 2010 - 在调试期间查看列表导致超时

    我正在尝试调试一个项目 突然遇到一个问题 如果我尝试查看它 枚举任何对象集合都会导致超时 如果我正常运行该程序 就没有问题 如果我尝试查看任何集合 例如列表 我会收到超时错误 整个事情就会崩溃 我认为我的一个更复杂的集合可能出了问题 所以我
  • ASP.NET MVC 5 属性路由:Url.Action 返回 null

    我在重构我们的支付处理操作方法 由我们的第 3 方在线支付提供商调用 时遇到问题 我们有一个产品控制器 Authorize and RoutePrefix products 类级别的属性和操作方法 包括以下内容 Product string
  • App_offline.htm、CSS、图像和 aspnet_isapi.dll

    因此 我正在开发的网站正在使用 urlrewriting 与 aspnet isapi dll 配合 所有内容都映射到它 我放置了 app offline htm 文件 所有文本均显示 但是 CSS 或图像未提供 我猜测由于通配符映射而不是
  • 构建 C# Web API - REST

    我即将开始一个 C 项目 我从未使用过 C 我希望在犯下愚蠢的错误并走上错误的道路之前能得到一些实施建议 我想要实现的目标基本上是在服务器上拥有一个可以通过 Web API 访问的 C 应用程序 该应用程序将接受一些字符串变量 然后返回一个
  • ASP.NET 会话状态服务器与 InProc 会话

    运行会话状态服务器而不是 InProc 的开销性能损失是多少 重要吗 我知道您可以使用状态服务器重新启动 w3wp 并保留所有会话状态 这是相对于 InProc 的唯一优势吗 这取决于您的部署计划 在单个服务器上 损失很小 但好处同样有限
  • 为什么应该或不应该将数据集、数据表等存储为 ASP.NET 页面中的会话变量?

    我正在开发一个使用 Web 服务返回的数据集的 Web 应用程序 当应用程序运行时 我将该数据集存储为会话变量 以便在用户导航到将编辑数据集中的表的不同页面时反复使用 这个想法是 当应用程序加载时 用户只需要等待一次数据 然后应用程序将使用
  • 如何将整个 POST 数据转储到 ASP.NET 中的文件中

    我目前正在尝试将一个应用程序从 asp net 移植到 php 但是我遇到了困难 需要有人帮忙 我需要将通过 POST 收到的 aspx 中的所有数据转储到文件中 但我不知道如何执行此操作 有任何想法吗 您可以使用Request 对象的In
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • 使用 C# 和 ASP.NET 在电子邮件附件中发送 SQL 报告

    我正在尝试使用 ASP NET 和 C 从 sql reportserver 2008 作为电子邮件附件发送报告 到目前为止我学会了如何获取 PDF 格式的报告 http weblogs asp net srkirkland archive
  • 在Page_Load之前处理事件

    我有一个 ASP NET 网页 其中包含大量在页面的 Page Load 事件中处理的代码 我在页面上还有一个下拉框 应该使用新值重新加载页面 但我想在处理整个页面加载代码之前获取这个新值 我正在尝试了解 ASP NET 页面生命周期 我应
  • JWT - 配置授权服务器并将颁发者设置为其本身

    我正在尝试按照本指南设置授权服务器 http bitoftech net 2014 10 27 json web token asp net web api 2 jwt owin authorization server http bito

随机推荐

  • 为什么 R 中 "" == true

    我刚刚开始学习 R 在我的第一个作业中 我面临一个问题 我需要比较一堆变量 在这样做时 我应该在比较两个变量时得到错误 不仅当它们不相等时 而且当它们的类型不一样 例如 7 7 给出 true 应该是 false 目前 我正在做同样的事情
  • Java Servlet 中的 PostgreSQL 连接用于从数据库检索信息。出现错误

    我很难完成这项工作 我可以毫无问题地连接到数据库 但是我无法让它显示 html 页面 它不运行 import java io import java sql import java text import java util import
  • Hibernate+SQLite+Netbeans

    有人可以告诉我在哪里可以找到将 hibernate 连接到 sqlite 的驱动程序和方言文件吗 由于SQLite数据库被广泛使用 并且Java中的Hibernate 不是NHibernate 对它的支持不够好 因此将SQLite与Hibe
  • 使用 MATLAB 比较文件

    我想知道如何比较两个文件 逐行 xml m txt 等 使用 MATLAB file1 toto xml file2 titi xml 我正在寻找一个 MATLAB 函数 通过命令行 它返回 true false 或 diff 列表 您可以
  • 正则表达式删除所有样式,但保留颜色和背景颜色(如果存在)

    我仍然无法用心使用正则表达式 因此无法找到最终的解决方案来使用 RegEx 和 Javascript 去除 中的所有样式 但是保留颜色和背景颜色 如果存在 我发现了什么 1 使用正则表达式删除完整的 style 元素 htmlString
  • 如何在一个 php include 文件中包含多个页面内容?

    我想知道如何将各种元素 页眉 页脚 导航 包含在一个 php 文件中以包含在各个页面上 而不是创建多个单独调用的 php 文件 在我的包含文件中 我有以下代码 输出到运行 php 的 html 页面我有 有没有办法包含特定的 div 或
  • .gitignore 忽略所有文件,然后递归允许 *.foo

    已经有几个与此类似的问题 但没有一个答案对我有用 我想忽略存储库下面的文件夹中的所有内容 除了带有 foo 的文件 如果有人想知道如何证明这一点 我实际上正在为我所有的 Logic 项目创建一个 git 存储库 Mac 上的音乐软件 但我只
  • 使用 GroundOverlay 的脉冲动画

    我需要通过脉冲动画显示位置 A 和位置 B 我可以使用下面的代码来实现这一点 但我面临的问题是 当缩放级别发生变化时 GroundOverlay 也会改变其大小 如果位置 A 和 B 彼此靠近 即地图放大级别较高 则脉冲半径太大 当我缩小时
  • 在负载平衡环境中获取 IIS 服务器变量的客户端值

    我有一个intranetASP NET Web 应用程序 我需要在其中获取客户端计算机的 IP 我通过以下代码执行此操作 HttpContext Current Request ServerVariables Item REMOTE HOS
  • 快照视图和动态视图有什么区别?

    我在 ClearCase 中看到有一个快照视图和一个动态视图 这些类型的视图之间有什么区别 我假设只有两种类型的视图 以及什么时候使用它们合适 快照视图基于本地文件系统 就像 Subversion 中的工作空间 您可以将文件加载到硬盘上的任
  • 为什么对派生类中的影子非虚拟成员函数的调用不调用基类成员函数?

    让我们在 Visual C 2010 中假设这个场景 include
  • 如果循环后没有匹配项,如何只得到一个答案

    我的代码在数组中有一个 for 循环 并且有 if 语句 如果没有匹配项 我只想得到一个答案 for int i 0 i lt arr Length i if arr i GetSomeValue gt 1 i GetSomeValue l
  • 如何检查 numpy 数组是否为空?

    如何检查 numpy 数组是否为空 我使用了以下代码 但如果数组包含零 则会失败 if not self Definition all 这是解决方案吗 if self Definition array 您可以随时查看 size属性 这是定义
  • 使用 2016 Facebook SDK 使页面访问令牌永不过期?

    我们正在构建的应用程序是一款 iOS 和 Android 移动应用程序 它将高中生与非营利组织配对 以帮助管理他们的 Facebook 页面 我们将每个学生分配到一个非营利组织 让他们成为 Facebook 页面的管理员 并允许他们代表该组
  • 如何在 Firestore (SWIFT) 中使用 FieldValue 减少值?

    阅读博客post和文档 我发现我们可以使用增加一个值FieldValue但我找不到减量函数 document fitness teams Team 1 updateData step counter FieldValue decrement
  • 查找当前流是否包含 ClearCase 中的基线

    假设我有一个名为 A1 的基线 然后我想看看是否有任何方法可以让我在同一个项目的任何地方进入另一个流 看看我的流中是否有 A1 IE 我的流中是否有 A1 中所做的代码更改 有什么快速的方法可以做到这一点吗 先感谢您 ClearCase 基
  • VBScript循环遍历文件夹中的所有文件

    我有在单个文件上执行该过程的代码 任何人都可以更改此脚本 以便它循环遍历目录 H Letter Display Letters 中文件类型为 的所有文件 LTR 并保存它们全部 Const ForReading 1 Const ForWri
  • $_GET 变量的编码混乱

    我在网站编码方面遇到了很多麻烦 这是我现在的问题 如果我去analize php dialog rbol哪个代码是
  • 使用 for 循环删除列表中的项目

    我有一个包含主题的数组 每个主题都有相关的时间 我想比较列表中的每个主题 如果有两个相同的科目 我想添加两个科目的时间 并且还想删除第二个科目信息 科目名称和时间 但是如果我删除该项目 列表就会变短 并且会出现超出范围的错误 我尝试使用 s
  • 使用 GhostScript 将 PDF 转换为服务器上的图像集合

    这些是我试图实现的步骤 在服务器上上传 PDF 文档 使用 GhostScript 将 PDF 文档转换为一组图像 每个页面都转换为图像 将图像集合发送回客户端 到目前为止 我感兴趣的是 2 首先 我下载了两个gswin32c exe an