我们使用 php、pypdfocr 和 pdftotext 进行 OCR 并从已扫描或传真给我们的文档中提取文本。问题是当文档被颠倒扫描或传真时,或者某些页面打算横向阅读时(因此文本在页面上旋转 90 度)
我尝试过的事情:
对于具有 90 度文本的页面,生成的 OCR 文本图层还不错,但是颠倒的页面,它会 OCR 中的每个单词并将其翻转到位,这样如果“这是一个测试”出现在文档中但颠倒了,那么文本层可能会显示“test a is This”
如果有一种方法可以检测到页面上下颠倒,我可以在通过 OCR 运行之前使用 pdftk 旋转页面(或者,如果是 OCR,我可以删除文本层,然后在 OCR 中再次运行它)使用pdftk进行旋转)
此时可以从 Linux CLI 执行的任何解决方案都是可行的解决方案。
在 Ghostscript 9.21 之前,可以使用以下代码将注释平铺到文档中:
c:\gs\gs9.23\bin\gswin64c -dSAFER -dDOPDFMARKS -dBATCH -dNOPAUSE
-sDEVICE=pdfwrite -dCompatibilityLevel=1.3
-sFONTPATH=c:/gs/fonts;%windir%/fonts;. -sPDFPassword=
-dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true
-sOutputFile=file_noPW.pdf file.pdf
Run Code Online (Sandbox Code Playgroud)
这将使注释永久保留在文件中,就像 Acrobat 的印前检查选项一样。从版本 9.21 开始,这种情况不再发生。
有没有办法扁平化注释?我用它来确保使用 Latex 导入的 pdf 具有所有注释,因为 pdflatex 和 xelatex 不导入注释。
我正在尝试使用camelot从此pdf链接中提取表格,但是,当尝试以下代码时:
import camelot
file = 'relacao_medicamentos_rename_2020.pdf'
tables = camelot.read_pdf(file)
tables.export('relacao_medicamentos_rename_2020.csv', f='csv', compress=False)
Run Code Online (Sandbox Code Playgroud)
简单什么都不会发生。这很奇怪,因为当我尝试相同的代码但使用此 pdf链接时效果非常好。
我有很多tif文件,我想将其转换为单个文件.我在Ubuntu 11.04上,我该怎么办?我尝试将tif转换为单个pdf,但是当我将pdf转换为tif时我卡住了,我用这个命令使用ghoscript:
gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=result.tif source.pdf
Run Code Online (Sandbox Code Playgroud)
但结果并不好.:(.对我的问题有任何建议吗?
谢谢你.
我正在尝试从PDF中提取文本.我正在使用Ghostscript,但是当我运行下面的命令时
gs -dBATCH -dNOPAUSE -sDEVICE=txtwrite mypdf.pdf
发生错误.这一个在下面.
Unknown device: txtwrite
Unrecoverable error: undefined in .uninstallpagedevice
Operand stack:
defaultdevice
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?是不是txtwrite默认的ghostscript设备?
这是输出 gs -v
GPL Ghostscript 8.70 (2009-07-31)
Run Code Online (Sandbox Code Playgroud)
那个操作系统版本CentOS release 5.8 (Final).
我正在寻找一种path从PDF文件中删除所有对象的方法.
我怀疑这可能是用Adobe Acrobat中的javascript完成的,但我真的很感激使用ghostscript或mupdf工具做一些提示.
无论如何,任何可行的解决方案都是正确的答案
我被认为可以从Ghostscript输出到SVG,如本博客文章所述:
gs -dBATCH -dSAFER -dNOPAUSE -sDEVICE=svg -sOutputFile=Logo.svg Logo.pdf
但是,我只是得到"未知设备:svg"
我正在使用Ghostscript 9.06
我的问题是:我从哪里获得svg设备,如何安装?(红帽x64)
到目前为止,我已经尝试了谷歌搜索(许多死胡同,但没有真正提到这个输出设备),并在Ghostscript网站上查找.
考虑这个PDF。我正在尝试使用以下命令将其转换为标准字母大小(8.5 x 11)。
gs -dFIXEDMEDIA -dBATCH -dNOPAUSE -sPAPERSIZE=letter \
-dPDFFitPage -q -sDEVICE=pdfwrite -sOutputFile=out.pdf \
dean08mapreduce.pdf
Run Code Online (Sandbox Code Playgroud)
这是pdfinfo输出。
Producer: GPL Ghostscript 9.10
CreationDate: Mon Nov 17 18:25:01 2014
ModDate: Mon Nov 17 18:25:01 2014
Tagged: no
Form: none
Pages: 7
Encrypted: no
Page size: 596.225 x 792 pts
Page rot: 0
File size: 126908 bytes
Optimized: no
PDF version: 1.4
Run Code Online (Sandbox Code Playgroud)
这是pdfinfo原始文件:
Producer: Creo Normalizer JTP
CreationDate: Fri Dec 21 09:09:07 2007
ModDate: Fri Dec 21 14:46:23 …Run Code Online (Sandbox Code Playgroud) 如何使用ghostscript api打印pdf.我试过谷歌,但仍然没有得到适当的解决方案.请帮我完成这项任务.
我正在尝试将一页或多页的PDF文件转换为每页的图像。这非常像这里的问题。实际上,我正在尝试使用该帖子中@Idan Yacobi的代码来完成此任务。他的代码如下所示:
import ghostscript
def pdf2jpeg(pdf_input_path, jpeg_output_path):
args = ["pdf2jpeg", # actual value doesn't matter
"-dNOPAUSE",
"-sDEVICE=jpeg",
"-r144",
"-sOutputFile=" + jpeg_output_path,
pdf_input_path]
ghostscript.Ghostscript(*args)
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我从python得到以下输出:
##### 238647312 c_void_p(238647312L)
当我查看应该在其中创建新.jpg图像的文件夹时,那里有一个具有新名称的文件。但是,当我尝试打开文件时,图像预览显示“ Windows Photo Viewer无法打开该图片,因为该图片正在其他程序中进行编辑。”
似乎出于某种原因,Ghostscript打开了文件并写入了文件,但是在完成后没有关闭文件。我有什么办法可以强迫这种情况发生?还是我想念其他东西?
我已经尝试将上面的最后一行更改为下面的代码,以在完成后显式关闭ghostscript。
GS = ghostscript.Ghostscript(*args)
GS.exit()
Run Code Online (Sandbox Code Playgroud)