将高分辨率PDF转换为低分辨率PDF文件 C#

3
我正在寻找一种方法,通过ASP.NET应用程序(C #)将高分辨率PDF文件转换为低分辨率PDF文件。用户将导入高分辨率PDF,解决方案应该能够提供高分辨率PDF和低分辨率PDF两种选项。我正在寻找一个API来处理这个问题。我已经找到了很多PDF API,但似乎没有一个能够满足我的需求。

HR_PDF和LR_PDF是什么文件?在谷歌上快速搜索没有找到任何信息。 - iPDFdev
好奇问一下,什么是HR_PDF和LR_PDF? - mkl
你目前尝试了什么?你有搜索任何可能帮助你解决问题的内容吗?市场上有许多 C# PDF 库可供选择。 - qJake
定义“高分辨率”和“低分辨率”。您认为PDF文档的屏幕截图是否属于“低分辨率”? - Dour High Arch
从INDD生成高分辨率的PDF文件。使用Indesign内置预设“最高文件大小”生成。因此,我想从生成的文件中生成分辨率较低的PDF文件。类似于内置的PDF预设“最小文件大小”。 - Tobias Tångfelt
如果在 PDF 中嵌入了位图 / 光栅图形,那么“高分辨率”/“低分辨率”仅相关吗? - stakx - no longer contributing
3个回答

1
ABCpdf .NET可以为您完成此操作。有多种功能可用于调整、重新采样或重新压缩PDF文档中的图像。但是,考虑到您的要求,您可能只想使用文档缩小大小操作。
要做到这一点,您只需要以下形式的代码:
Doc doc = new Doc();
doc.Read(Server.MapPath("../mypics/sample.pdf"));
using (ReduceSizeOperation op = new ReduceSizeOperation(doc)) {
op.UnembedSimpleFonts = false; // though of course making these true...
op.UnembedComplexFonts = false; // ... would further reduce file size.
op.MonochromeImageDpi = 72;
op.GrayImageDpi = 72;
op.ColorImageDpi = 144;
op.Compact(true);
}
doc.Save(Server.MapPath("ReduceSizeOperation.pdf"));

我在ABCpdf .NET软件组件上工作,因此我的回复可能涉及基于ABCpdf的概念。这就是我所知道的。:-)


0

可能你可以在高分辨率版本的PDF中调整图片大小,这样可以得到更小的文件。

您可以使用Docotic.Pdf库来调整和/或重新压缩图像。有关更多详细信息,请查看我对类似问题的回答

免责声明:我是Docotic.Pdf库的开发人员之一。


0

这个问题有很多种可能的解决方法,其中一种方法是从InDesign导出两次(这将允许您制作所需的两个版本的PDF)。如果这不可行(因为从InDesign导出可能需要一些时间),市场上肯定有可以执行您想要做的操作的库。以下是几种方法:

1)虽然这会让大多数Adobe员工对我开枪,但您可以重新压缩PDF文件以生成较小的文件。我不建议这样做,我提到它只是为了完整。涉及的风险包括引入质量损失、伪像等(主要是因为PostScript不支持PDF支持的某些功能,通过重新压缩,您将丢失这些功能)。

2) 使用专门用于此任务的应用程序或库。例如,callas pdfToolbox(警告,我与该公司有关联!)能够接收PDF文件并对其进行校正。这些校正包括图像降采样、转换为RGB、图像重新压缩(例如使用JPEG-2000)、丢弃PDF中不必要的数据等等。由于该应用程序具有命令行界面,因此可以轻松地集成到C#进程中。其他具有类似功能的应用程序来自Enfocus、Apago等公司。

3) 使用低级PDF库(例如Adobe PDF库,可以通过DataLogics从Adobe获得许可),并自己实现必要的更改。工作量更大,但可能更灵活。

无论您选择哪种方法,请知道您从高质量的PDF文件开始,并且您的过程应尽可能保留该质量(当然取决于您用于低分辨率PDF文件的应用程序)。确保您不会因失去正确的覆盖印刷、透明度等而遇到麻烦...


很遗憾,我没有能力从Indesign或类似的程序中创建低分辨率文件,我必须从代码中完成。不幸的是,我需要某种开源解决方案来实现这一点。 - Tobias Tångfelt
那么,现在只剩下选项3)了,尝试找到一个不会破坏PDF文件的库。我对这些不是很熟悉,所以我得放弃了。我可以建议您在问题中添加开源/免费解决方案的要求吗?这可能有助于进一步引导答案朝着正确的方向发展... - David van Driessche

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接