2013-05-31 95 views
2

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

+0

什么文件是HR_PDF和LR_PDF?在Google上快速搜索没有发现任何内容。 – iPDFdev

+0

出于好奇,什么是HR_PDF,什么是LR_PDF? – mkl

+0

高分辨率,低分辨率 – Darren

回答

0

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 library调整图像大小和/或重新压缩图像。欲了解更多详情,请看看my answer to a similar question

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

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文件课程)。确保你不会因为丢失适当的套印,透明度等而陷入困境......

+0

不幸的是,我没有能力从Indesign或类似的程序创建低分辨率文件,我必须从代​​码中完成。不幸的是,我需要某种开源解决方案。 –

+0

然后,所有留给你的是选项3),并尝试找到一个可以使用的库,它不会破坏PDF文件。我对这些不太熟悉,所以我必须通过。我可以建议你为你的问题添加一个开源/免费解决方案的要求吗?这可能有助于朝着正确的方向进一步解决问题。 –