如何在 Linux 服务器上从 PDF 文件创建缩略图/屏幕截图?

2023-11-23

我想创建 PDF 文件的缩略图,以便能够在网站上显示 PDF 文件的简短预览。

我用 ImageMagick 尝试过。不幸的是,结果不太令人满意。 生成的图像非常模糊。

缩略图示例(模糊):

Bildschirmfoto 2010-09-11 um 22.57.49.png

原始PDF:(见评论)

命令:convert -thumbnail x800 k.pdf[0] test.png

我的转换命令配置错误还是您知道实现我的目标的更好方法?


您的原始 pdf 比您创建的缩略图小。 Imagemagick 缩放图像以匹配请求的尺寸。使用以下参数:

convert -scale '800x800+0+0>' -colorspace rgb -strip in.pdf[0] out.png

尾随的>在scale参数中告诉Imagemagick不要将图像缩放到大于原始图像。

Edit:Imagemagick 使用 Ghostscript 渲染 PDF 文件。如果您需要设置一些参数(例如分辨率)以获得更好的图像,您可以直接使用 Ghostscript。默认分辨率为 72 DPI,这意味着 A4 纸的尺寸为 595 x 841 像素。使用 150 DPI,您将获得两倍的像素数。例如。

gs -q -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dMAxBitmap=500000000 -dAlignToPixles=0 -dGridFitTT=0 -r150x150 -sOutputFile=out.png in.pdf

上面的命令与 Imagemagick 使用的命令几乎相同。请注意 -r 参数,该参数设置 150 DPI 分辨率。您可以使用 ImageMagick 将生成的图像缩放到较小的尺寸。

使用更高的分辨率可以减少调整图像大小时的模糊度。

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

如何在 Linux 服务器上从 PDF 文件创建缩略图/屏幕截图? 的相关文章

  • PHP 开发相当于 Mongrel/Webrick 吗?

    PHP 开发中是否有与 Rails 开发期间使用 Mongrel Webrick 等效的方法 我通常在端口 3000 上使用 Mongrel 在开发过程中为我的 Rails 应用程序提供服务 我从事 PHP 开发已经有几年了 据我所知 方法
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 如何使用 Facebook SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 通过 facebook graph API 检索 facebook 用户的邮政编码

    我正在尝试使用 facebook graph API 检索用户的邮政编码 我正在使用以下代码 代码在php ini中 facebook new Facebook array appId gt APP ID secret gt APP SEC
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • 如何在 yii2 中使用两个不同的模型登录或切换身份类别?

    我想允许用户从两个不同的模型登录 配置文件 user gt identityClass gt app models User one more class here enableAutoLogin gt false authTimeout
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • 使用反应钩子从父组件触发子函数

    我在父组件中有一些操作按钮 单击此类按钮之一时 我想触发子组件中的一个功能 目前 我正在尝试使用 useRef 钩子来实现它 但该解决方案似乎很乏味 并且还给了我警告 我当前的代码如下所示 import React useContext u
  • iostream线程安全,cout和cerr必须单独加锁吗?

    我知道 为了避免输出混合 多个线程对 cout 和 cerr 的访问必须同步 在同时使用 cout 和 cerr 的程序中 单独锁定它们是否足够 或者同时写入 cout 和 cerr 仍然不安全 编辑澄清 我知道 cout 和 cerr 在
  • Django 抽象模型与常规继承

    除了语法之外 使用 django 抽象模型和使用 django 模型的普通 Python 继承有什么区别 优点和缺点 更新 我认为我的问题被误解了 我收到了关于抽象模型和继承自 django db models Model 的类之间差异的回
  • C# dotnet core 2 将数据从中间件/过滤器传递到控制器方法

    目前我们正在使用 dotnet core 2 编写一个 Web 应用程序 我们实际上创建了某种多托管平台 可以根据传递到应用程序的 URL 注册新客户端 然而目前我们想要创建一个中间件 过滤器来验证我们的客户端 实际上我们想要做的是从数据库
  • Where 子句应用于多种模式

    我有一个具有多种模式的函数 我有两个或多个共享相同的表达式 我想替换它们 现在如果我写一个where子句在底部 缩进它并定义一个新变量 因为我想替换它的表达式不起作用 Example myFunction firstParam second
  • CS0019 运算符不能应用于“bool”和“int”类型的操作数

    该程序是为了响应作业 创建一个名为Sum 接受任意数量的整数参数并且 显示它们的总和 写一个Main 方法证明了Sum 当传递一个 三个 五个或十个整数的数组时 方法可以正常工作 将程序另存为UsingSum cs 来自 Microsoft
  • 如何将

    如何将日本纪元日期字符串输入解析为LocalDate LocalDateTime通过 Java 8 DateTime API 日本日历日期示例 明治23年11月29日 昭和22年5月3日 平成23年3月11日 金 14時46分 令和5年1月
  • 从网络共享运行“部分受信任”的 .NET 程序集

    当我尝试运行 NET 程序集时 boo exe 从网络共享 映射到驱动器 它会失败 因为它仅部分受信任 Unhandled Exception System Security SecurityException That assembly
  • 为什么 C# 扩展方法必须在静态类中定义? [复制]

    这个问题在这里已经有答案了 我知道 C 扩展方法必须是静态的 我不明白的是为什么这些扩展不能在非静态类或通用类中定义 更新 我对这个设计决策背后的原因感兴趣 这更多的是一种观察而不是答案 但是 当您调用实例方法时 对您正在调用的对象的引用将
  • 使用 mongoDB 将嵌入文档与父字段进行比较

    考虑以下集合 其中父文档有一个amount具有值的字段100000并且有一个嵌入的具有相同字段的文档数组amount和相同的值 id ObjectId 5975ce5f05563b6303924914 amount 100000 offer
  • 通过NAT访问SQL Server实例

    我正在尝试访问通过 IP NAT 映射公开的 SQL Server 所有端口均开放 我不知道 NAT 的详细信息 是否相关 因为那是公司其他地方隐藏在一堆繁文缛节中的内容 这就是我的想法 当您尝试访问 SQL Server 的命名实例时 客
  • 内容://sms/sent/ 不起作用

    这是短信观察者代码 我只需要检查发送的短信 当我使用content sms 我得到结果了 但为什么我使用时没有得到结果content sms sent 我使用的是安卓2 1 import android app Service import
  • 如何获取字符串的宽度(以像素为单位)?

    我正在使用 wxPython 的 HyperTreeList 我想将列宽设置为恰好等于其中最大字符串的长度 为了实现这一点 我想将 python 字符串大小转换为像素 例如 如果我们有一个像这样的字符串 str python len str
  • 与所有子域 codeigniter 共享会话数据

    我正在尝试使用一个session我所有子域的数据 我创建了一个subdomain in cpanel像这样 mydomain in and my mydomain in使用与我相同的路径mydomain in例子 mydomain in使用
  • 如何在我的电脑上运行php文件

    谁能告诉我如何在我的系统上本地运行 php 文件 目前我正在使用服务器来运行文件 我知道要安装 php 和 Apache 我需要查看该程序的输出 例如 如果我需要更多内容 您能告诉我如何运行这些文件吗 php 有一个简单的方法来运行轻量级服
  • 在 QMainWindow 中选择“中央小部件”的规则是什么?为什么它很重要?

    我明白设置CentralWidget需要在Q主窗口乍一看 中央小部件的含义似乎非常不言自明 但有没有更严格的定义 central 比如说 我有几个同样重要的小部件位于窗口的中央区域 我是否应该始终找到一种方法将它们分组在一起并将该组设置为中
  • PHP filemtime 函数 - “统计失败”

    我的 PHP filemtime 函数有问题 在我的网络应用程序中 我使用带有缓存选项的 Smarty 模板引擎 在我的网络应用程序中 我可以执行一些会产生错误的操作 但让我们只关注一个操作 当我单击页面上的链接时 某些内容会更新 我可以单
  • Linux:是否有从套接字读取或接收超时?

    如何尝试从套接字读取超时数据 我知道 select pselect poll 有一个超时字段 但是使用它们会禁用 tcp reno 堆栈中的 tcp 快速路径 我唯一的想法是在循环中使用 recv fd MSG DONTWAIT 您可以使用
  • 如何拦截CallKit来电屏幕发送的“消息”?

    我正在使用 iOS 10 的 CallKit 来接听来电 我的应用程序中的呼叫不是来自 电话号码 或 电子邮件地址 而是来自我的协议中的内部标识符 因此 我报告来电CXHandleType of CXHandleTypeGeneric 并不
  • 如何在 Linux 服务器上从 PDF 文件创建缩略图/屏幕截图?

    我想创建 PDF 文件的缩略图 以便能够在网站上显示 PDF 文件的简短预览 我用 ImageMagick 尝试过 不幸的是 结果不太令人满意 生成的图像非常模糊 缩略图示例 模糊 原始PDF 见评论 命令 convert thumbnai