刚为Windows安装了Ghostscript 8.54.
有没有人知道传递给gswin32c.exe它的最小参数,比如someFile.eps转换为someFile.eps.pdf?
给定PDF文档,如何更改单个页面方向?
我正在使用最新版本的Ghostscript.
我正在使用Ghostscript库API(从C#包装)从我的应用程序打印PDF文档.
使用' -dFirstPage '和' -dLastPage '参数,我可以选择要打印的页面范围,但PDF页面的总数如何?
允许用户选择2到10之间的页面间隔并不是很好,当然,让我说,PDF文档只有4页.
考虑一下我通过gsapi_init_with_args API库调用使用Ghostscript库.
我正在尝试将此PDF转换为灰度:https://dl.dropboxusercontent.com/u/10351891/page-27.pdf
Ghostscript(v 9.10)与pdfwrite设备失败,"无法将色彩空间转换为灰色,将策略还原为LeaveColorUnchanged".信息.
我能够通过中间ps文件(使用gs,pdftops(v 0.24.3)或pdf2ps)转换它,但这个转换光栅化整个PDF.我尝试了很多其他的东西:使用qpdf(v 5.0.1)或pdftk(v 1.44)规范化PDF,将其转换为svg文件并通过Inkscape(v 0.48.4)转换回PDF ...似乎没什么上班.
我找到的唯一一个解决方案(在生产环境中不适合我)是在我的Mac上使用预览并手动或使用Automator脚本应用Quartz Gray Tone滤镜.
有人找到另一种工作方式吗?或者是否可以规范化PDF或修复问题以防止Ghostscript消息"无法转换颜色空间..."或以另一种方式强制颜色空间?
谢谢!
是否有免费的C#库(.dll)将PDF转换为图像?
我试过这个:
但它不起作用,我得到了这个错误:
Could not load file or assembly 'libpdf.DLL' or one of its dependencies. The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
iTextSharp没有实现这样的功能..
编辑:
我没有使用ghost scrpit,因为你必须先在计算机上安装它
但现在我找到了一个解决方案:如果你加载manualy它的工作原理
public void PDFToImage(string file, string outputPath, int dpi)
{
string path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
Ghostscript.NET.Rasterizer.GhostscriptRasterizer rasterizer = null;
Ghostscript.NET.GhostscriptVersionInfo vesion = new Ghostscript.NET.GhostscriptVersionInfo(new Version(0, 0, 0), path + @"\gsdll32.dll", string.Empty, Ghostscript.NET.GhostscriptLicense.GPL);
using (rasterizer = new Ghostscript.NET.Rasterizer.GhostscriptRasterizer())
{
rasterizer.Open(file, vesion, false);
for (int i = …Run Code Online (Sandbox Code Playgroud) 我试图使用Ghostscript将具有透明背景的PDF文件光栅化为具有透明背景的PNG文件,但未成功.我已经搜索了其他人尝试相同的问题而没有发布的解决方案的问题,据我所知,只需指定-sDEVICE = pngalpha,就可以使用我的测试文件了.在这一点上,我真的很感激有经验的手提供的任何建议或提示.
我的测试PDF位于:http://www.kolossus.com/files/test.pdf
问题可能在于这个文件,但我对此表示怀疑.据我所知,它没有指定的背景,当我用像Photoshop或Illustrator这样的透明感知应用程序打开文件时,确实它显示的是透明背景.但是,使用Adobe Reader等应用程序打开时,文件将以白色背景呈现.我相信这与渲染PDF的应用程序有关,而不是与PDF本身有关 - 像Adobe Reader这样的应用程序假设你想看看打印文档的样子,因此总是在艺术作品背后显示白色画布 - 但是我不能确定.
我正在使用的gs命令是:
gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -r72 -sOutputFile=test.png test.pdf
Run Code Online (Sandbox Code Playgroud)
这将生成一个PNG,该PNG在文件中艺术作品的边界框之外具有透明像素,但是在艺术作品的边界框内的所有像素都在白色背景下进行光栅化.这对我来说是一个问题,因为我的作品有阴影和抗锯齿边缘需要在最终输出中保留,并且不能仅使用ImageMagick进行后处理.我的PNG输出示例与上面的pdf位于同一位置,最后是.png(stackoverflow不允许我在我的帖子中包含多个url).
有趣的是,我发现使用-dBackgroundColor标志没有任何影响,即使我将它设置为非白色的东西,如-dBackgroundColor = 16#ff0000.也许我对这个标志语法的理解是错误的.
同样有趣的是,我发现使用-dTextAlphaBits = 4 -dGraphicsAlphaBits = 4标志来尝试启用子像素抗锯齿没有任何影响.我也很感激有关如何启用亚像素抗锯齿的任何建议,特别是在文本上.
最后,我在Mac OS 10.5.7上使用GPL Ghostscript 8.64,我试图设置的渲染工作流程是从PrinceXML输出的PDF生成透明的PNG图像.我直接调用Ghostscript进行光栅化而不是使用ImageMagick,因为ImageMagick委托Ghostscript进行PDF光栅化,我应该能够通过直接调用GS来更好地控制光栅化.
谢谢你的帮助.
-Jon Wolfe
所以,我使用的是Matthew Ephraim的GhostscriptSharp,它是我ASP.Net MVC项目中非托管Win32 Ghostscript DLL的简单C#包装器.一些背景:
我试图做的是让用户上传PDF,然后将该文档转换为图像,然后我可以保存到我选择的任何目录中(以及做一些其他OOP以将新图像绑定到我的网站) .
我决定使用Ephraim先生的包装类(GhostscriptSharp)因为它很简单易用,它让我可以相对干净地访问DLL的API.
为了测试它,我创建了一个虚拟的C#控制台应用程序,以确保我可以加载DLL,访问它,将PDF文件交给本地磁盘,然后让它将JPG写入同一本地磁盘.经过一些学习经历,我获得了成功.我会把它交给C:\ INPUT.pdf,它会递给我C:\ OUTPUT.jpg.
但是,在将我在控制台应用程序中使用的GhostScriptSharp代码集成到我的ASP.NET MVC项目到我用P/invoke调用DLL的位置之后,Ghostscript返回了int/error代码-100,这是致命的错误(E_Fatal在GhostScript源代码中调用).我通过HTML表单上传的文件得到了相同的结果,如果我把它与我在工作控制台应用程序中使用的完全相同的硬编码路径.
作为参考,抛出异常的行在GhostScriptSharp.cs中是93-97(在CallApi函数中):
int result = InitAPI(gsInstancePtr, args.Length, args);
if (result < 0) {
throw new ExternalException("Ghostscript conversion error", result);
}
Run Code Online (Sandbox Code Playgroud)
显然,抛出异常,因为result是-100.
当调用InitAPI时,实例ptr是有效的int(虽然我不知道GS的实例是否正确),args的长度为20(是string[])有效的GhostScript选项(包括正确转义的路径)到我的输入和输出文件).
长话短说,我做错了什么?错误代码-100似乎是一个全能,因为没有文档说明这里可能出错的地方.
非常感谢任何帮助,谢谢你提前.
我已经对学术论文进行了几年的评分,我已经开始看到拼写和语法错误的多种模式.此外,我注意到经验不足的学者倾向于使用某些能够立即为更有经验的研究人员带来"气味"的结构.
我想在PDF文件中自动识别和注释这些内容.是否有人知道我可以用来自动注释和评论PDF文件的脚本?也许这很简单,但我觉得我是第一个提出这个问题的人之一.
编程没问题.
是否可以使用GhostScript获取页面大小(例如PDF文档页面)?我见过"bbox"设备,但是它返回了边界框(每页不同),而不是PDF页面的TrimBox(或CropBox).(有关页面框的信息,请参阅http://www.prepressure.com/pdf/basics/page_boxes.)还有其他可能吗?
ghostscript ×10
pdf ×7
c# ×2
annotations ×1
api ×1
asp.net-mvc ×1
command-line ×1
comments ×1
grayscale ×1
parameters ×1
png ×1
postscript ×1
regex ×1
size ×1
transparency ×1
windows ×1