相关疑难解决方法(0)

在python中从PDF中提取图像而不重新采样?

如何从原始分辨率和格式中提取pdf文档中的所有图像?(意思是提取tiff为tiff,jpeg为jpeg等,无需重新采样).布局是不重要的,我不在乎是源图像位于页面上.

我正在使用python 2.7,但如果需要可以使用3.x.

python pdf image extract pypdf

61
推荐指数
13
解决办法
7万
查看次数

使用iText和Java保存tiff CCITTFaxDecode(来自PDF页面)

我正在使用iText提取嵌入的图像并将它们保存为单独的文件..jpg和.png文件出来了,但我无法提取具有CCITTFaxDecode编码的tiff图像.

有没有人有办法保存tiff文件?

我发现了一些使用iTextSharp的样本C#代码,用/ CCITTFaxDecode过滤器从PDF提取图像 它表示需要一个单独的tiff库来写出结果.根据那篇文章,"CCITTFaxDecode"压缩是针对tiff库的Compression.CCITTFAX4.

要使用该文章的方法,我需要:1.获取一个tiff库.Java Image I/O API允许您以其他格式读取和写入TIFF文件.BufferedImage image = ImageIO.read(new File("image.tif"));

  1. 找出从PDF获取位图属性的等效代码,例如:pd.Get(PdfName.WIDTH).ToString()(在C#中)

tiff extract itext

5
推荐指数
1
解决办法
5574
查看次数

当长度未知时,是否可以使用libtiff解码CCITT编码的数据?

在这个问题的答案中:c ++解码pdfs中的CCITT编码图像

需要指出的是,libtiff可用于解码CCITT编码的图像.当然,我们必须预先添加一个TIFF标头,以使CCITT流成为有效的TIFF文件.

但是,PDF文件中的某些图像是内嵌图像,虽然给出了宽度,高度和位深度,但未给出它们的长度.读取PDF的程序应该解码CCITT流,读取(宽度*高度*深度)位的解码数据,以及读取数据后的任何位置,这是内联图像的结束.然后它应该继续下一页标记命令,依此类推.

这带来了一个问题.TIFF图像文件目录必须指定图像数据的每个条带中有多少字节,但在我们解码之前我们不知道编码数据的实际属于多少字节,但我们不能不使用libtiff解码图像...

有没有办法在这里使用libtiff或我们需要自定义CCITT过滤器代码?

pdf tiff

5
推荐指数
1
解决办法
492
查看次数

从PDF中的特定页面提取图像

我想从PDF文件中提取图像.我尝试使用以下代码,它从PDF中完美地提取了一个jpeg图像.问题是如何从特定页面(例如第1页)或从其他页面中提取图像.我不想阅读整个PDF来搜索图像.

有什么建议?

提取图像的代码:

private void List<System.Drawing.Image> ExtractImages(String PDFSourcePath)
        {
            List<System.Drawing.Image> ImgList = new List<System.Drawing.Image>();

            iTextSharp.text.pdf.RandomAccessFileOrArray RAFObj = null;
            iTextSharp.text.pdf.PdfReader PDFReaderObj = null;
            iTextSharp.text.pdf.PdfObject PDFObj = null;
            iTextSharp.text.pdf.PdfStream PDFStremObj = null;

            try
            {
                RAFObj = new iTextSharp.text.pdf.RandomAccessFileOrArray(PDFSourcePath);
                PDFReaderObj = new iTextSharp.text.pdf.PdfReader(RAFObj, null);

                for (int i = 0; i <= PDFReaderObj.XrefSize - 1; i++)
                {
                    PDFObj = PDFReaderObj.GetPdfObject(i);

                    if ((PDFObj != null) && PDFObj.IsStream())
                    {
                        PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
                        iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);

                        if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
                        {
                            byte[] …
Run Code Online (Sandbox Code Playgroud)

c# pdf itextsharp

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

pdf ×3

extract ×2

tiff ×2

c# ×1

image ×1

itext ×1

itextsharp ×1

pypdf ×1

python ×1