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

时间:2013-05-31 14:46:18

标签: c# asp.net pdf

我正在寻找一种将高分辨率PDF文件从ASP.NET应用程序(C#)转换为低分辨率PDF文件的方法。 用户将导入高分辨率PDF,然后解决方案应该可以提供高分辨率PDF和低分辨率PDF。 我正在寻找一个API来做到这一点。我发现了很多PDF apis,但似乎没有一个能做我想要的。

3 个答案:

答案 0 :(得分: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的概念。这就是我所知道的。 : - )

答案 1 :(得分:0)

可能您只需调整高分辨率版本PDF中的图像大小,这样可以为您提供更小的文件。

您可以使用Docotic.Pdf library调整图像大小和/或重新压缩图像。有关详细信息,请查看my answer to a similar question

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

答案 2 :(得分:0)

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

1)虽然这会让我被大多数Adobe员工拍摄,但您可以将PDF文件重新提炼为较小的文件。我主张这样做,我提到它是完整的。涉及的风险将是引入质量损失,人工制品等(主要是因为PostScript不支持PDF支持的许多功能,并且通过重新提示你放弃了这些功能)。

2)使用为此任务制作的应用程序或库。例如,callas pdfToolbox(警告,我是该公司的附属公司!)能够获取PDF文件并对其进行更正。其中的修正包括图像下采样,转换为RGB,图像重新压缩(例如使用JPEG-2000),丢弃PDF中不必要的数据等等。鉴于应用程序具有命令行界面,它可以轻松集成到c#进程中。具有类似功能的其他应用程序将来自Enfocus,Apago等公司。

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

无论您选择何种方法,都要知道您是从高质量的PDF文件开始的,并且您的流程应尽量保留尽可能多的质量(取决于您对低分辨率PDF文件的应用程序当然)。确保通过放弃适当的套印,透明度等而不会遇到麻烦......