为了解决我在 Windows 上压缩/缩小由 MikTeX 生成的 PDF 文件的问题,我在 Cmder 上尝试这个 bash 脚本:
shrinkpdf.sh in.pdf > out.pdf
Run Code Online (Sandbox Code Playgroud)
但是我收到错误:
选项 -dPDFSETTINGS=C:/Program Files/Git/screen 的值无效,请使用 -sNAME= 定义字符串常量
我想这与该行有关
-dPDFSETTINGS=/screen
Run Code Online (Sandbox Code Playgroud)
如果您能帮助我了解问题所在以及如何解决它,我将不胜感激。
我的环境是:
18091.3.149.27我正在尝试将多个 pdf(10k +)转换为 jpg 图像并从中提取文本。我目前正在使用pdf2imagepython 库,但它相当慢,有没有比这更快/最快的库?
from pdf2image import convert_from_bytes
images = convert_from_bytes(open(path,"rb").read())
Run Code Online (Sandbox Code Playgroud)
注意:我使用的是 ubantu 18.04
CPU:4 核 8 线程(ryzen 3 3100)
内存:8 GB
我正在寻找一个能够删除PDF中颜色的linux命令行实用程序/脚本.该实用程序的输出应该是相同的PDF,但是以灰度显示.
有谁知道如何做到这一点?
谢谢
我正在使用GhostScript,但它生成了错误的PDF/A文件.
如何从PostScript文件生成正确的PDF/A文件?
我有一个unix服务器(实际上是mac osx),它实际上将PS文件转换为PDF文件.通过ps2pdf以下参数完成此操作:
ps2pdf14 \
-dPDFSETTINGS=/prepress \
-dEPSCrop \
-dColorImageResolution=72 \
-dColorConversionStrategy=/LeaveColorUnchanged \
INPUT_FILE \
OUTPUT_FILE
Run Code Online (Sandbox Code Playgroud)
但是现在我要修改这个脚本以将PDF文件作为输入而不是PS.
所以我想ps2pdf将不再适用,我需要一些可以降低pdf质量的东西.
你知道这样的工具吗?
我正在尝试在我的托管 linux 机器上构建 Ghostscript (v 9.06),以便我可以操作 PDF 文件。使用./configureand一切正常make,但随后出现以下错误:
../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
之后,我得到了一个带有有趣â字符的错误列表,如下所示:
../gs/base/gdevx.c:1138: error: âgx_device_Xâ has no member named âtextâ
Run Code Online (Sandbox Code Playgroud)
这里有什么问题,有什么解决办法?我认为这是一个符号链接问题,所以我检查了我的 X11 目录所在的位置并运行以下命令:
ln -s X11 /usr/include/X11
Run Code Online (Sandbox Code Playgroud)
我又跑make了,但没有区别。有任何想法吗?
这是错误的前几行……其余的几乎都一样:
../gs/base/x_.h:135:29: error: X11/Intrinsic.h: No such file or directory
../gs/base/x_.h:136:30: error: X11/StringDefs.h: No such file or directory
../gs/base/x_.h:137:25: error: X11/Shell.h: No such file or directory
In file included from ../gs/base/gdevx.c:33:
../gs/base/gdevx.h:30: error: expected â=â, â,â, â;â, âasmâ or …Run Code Online (Sandbox Code Playgroud) 我一直试图在PHP中使用ghostscript将pdf文件转换为图像(png,jpg).
只要它们是图像我就不在乎.这是我使用的代码.
exec("gs -sDEVICE=jpeg -sOutputFile=/Applications/Mamp/htdocs/cover.jpg -r144 /Applications/Mamp/htdocs/test.pdf");
Run Code Online (Sandbox Code Playgroud)
当我输入完全相同的东西,显然没有exec和引号,进入命令行它完全符合我的要求.但是,当我运行php文件时没有任何反应.我正在使用MAMP服务器,服务器似乎工作正常,每当我用它运行另一个文件我没有问题.任何人都有任何想法为什么它可能无法正确执行?
我有一个非常具体的要求,我必须自动标记PDF文件的每一页(用于传真应用程序),所以这是我所做的过程:
第1步:将PDF转换为PNG,每页一个png文件
第2步:标记每个PNG文件(使用第三方工具..)
第3步:将PNG文件重新转换为一个PDF文件
第三步的输出文件"理论上"与步骤1中的输入文件相同(加上它上面的标记)但是不是,文件有点模糊,并且在传真之后它变成了人类不可兑换的模糊即使你看到input.pdf和output.pdf之间没有区别,像素也不会通过传真线,尝试放大,你会发现文本字符的边缘是模糊的.
输入(步骤1)或输出(步骤3)的最佳参数是什么?
谢谢 !
为什么Ghostscript pswrite在其输出中编码我的文本?考虑以下MWE:
%!PS-Adobe-3.0
%%Title: mwe.ps
%%Pages: 001
%%BoundingBox: 0 0 595 842
%%EndComments
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
0 0 1 setrgbcolor
0 0 595 842 rectfill
1 0 0 setrgbcolor
247 371 100 100 rectfill
/Times-Roman findfont
72 scalefont
setfont
newpath
247 300 moveto
(Chris) show
showpage
Run Code Online (Sandbox Code Playgroud)
将此MWE保存到文件并在GSview中查看将显示一个蓝色页面,其中包含红色方块和我的名字.现在使用以下命令行通过Ghostscript 9.06运行此文件:
"c:\Program Files\gs\gs9.06\bin\gswin64c.exe" ^
-dSAFER -dBATCH -dNOPAUSE ^
-sDEVICE=pswrite -sPAPERSIZE=a4 -r72 -sOutputFile=mwe_gs.ps mwe.ps
Run Code Online (Sandbox Code Playgroud)
请参阅下面的Ghostscript输出.有人可以解释一下这里发生了什么.虽然两个rectfill命令仍然很明显,但我的文本(Chris)已经编码,不再可以区分.
是否有替代的postscript设备可以保留我的文本?
<snip>
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
%%BeginPageSetup
GS_pswrite_2_0_1001 begin
595 …Run Code Online (Sandbox Code Playgroud) )
我知道有几个问题和线索关于类似的东西,但没有一个对我有用.我正在尝试将~1000个pdf文件合二为一.我尝试了几个工具,但只有gs(ghostscript)进行了适当的压缩.我的问题是多线程不工作/我有24个核心,并且喜欢使用例如8来执行任务,但top告诉我它仍然只使用一个.我的命令:
gs -q -dNOPAUSE -dNOPROMPT -q -dBATCH -dNumRenderingThreads=8 -dBandHeight=100 -dBandBufferSpace=500000000 -sBandListStorage=memory -dBufferSpace=1000000000 -sDEVICE=pdfwrite -sOutputFile=combined_gs.pdf sourcefiles/*.pdf
Run Code Online (Sandbox Code Playgroud)
我需要加速这一点,因为它需要大约60秒,我需要动态.有什么建议?