将pdf的部分内容渲染为图像

时间:2014-10-06 05:49:52

标签: pdf ghostscript cairo

是否有任何工具可以将pdf文档呈现为具有部分内容的图像?例如,只有文字,但没有图像和矢量,或者只有图像和矢量,但没有文字。

2 个答案:

答案 0 :(得分:1)

执行此操作的“传统”方法是预处理PDF文件,以便只保留所需的元素,然后对剩余文件进行栅格化。

举个例子,我已经实现了PDF到iPad的工作流程,其中callas pdfToolbox(注意,我连接到这家公司)用于在文本文件中分割PDF文件和“除了文本之外的任何东西”文件。之后,“除了文本之外的任何文件”文件被光栅化,并且重新组装了两个文件。

因此,无论您想使用哪种工具,我都会看到该工具如何预处理文件以删除无用的元素,或者如何分割出您想要的文件。然后使用该工具的常规光栅化功能。

答案 1 :(得分:1)

使用Debenu Quick PDF Library,您可以通过两种方式进行提取:

1.PDF2Image只是文字,没有图像

DPL.LoadFromFile("my_file.pdf", "");
int image_count = DPL.FindImages();  //number of embedded images
for(int i=0; i<=image_count; i++)
{
    DPL.ClearImage(i);  //clear the images
}
DPL.RenderageToFile(72, 1, 0, "just_text.bmp"); //save the file to image, without the images

以下是功能列表: http://www.debenu.com/docs/pdf_library_reference/ImageHandling.php

2.PDF2Image只是文字,没有图像

DPL.LoadFromFile("my_file.pdf", "");
DPL.GetPageText(3); //this returns CSV string with the cordinates of the text

//create new blank file
//XPos is the horizontal position of the text - get it from the CSV string
//YPos is the vertical position of the text - get it from the CSV string
//your_text is the text to draw - get it from the CSV string
DPL.DrawText(XPos, YPos, your_text);
DPL.RenderageToFile(72, 1, 0, "just_text.bmp"); //save the file to image, without the images