29
社区成员




一、用 Adobe Reader 打开 pdf 文件,复制里面的白底黑字签名图片,粘贴到Windows的“画图”里,得到的是一张全黑图片,跟用 PDFium的FPDFImageObj_GetBitmap函数来获得的图片一样,因此怀疑是tiff图片。二进制编辑 pdf 文件,看到该图片的描述如下:
60 0 obj
<</ColorSpace/DeviceGray/Subtype/Image/Height 229/Filter/FlateDecode/Type/XObject/Width 588/Length 9580/BitsPerComponent 8>>stream
x滍]y?诺縚酐^DⅨ
......
endstream
endobj
......
61 0 obj
<</ColorSpace[/CalRGB<</Gamma[2.2 2.2 2.2]/WhitePoint[0.95043 1 1.09]/Matrix[0.41239 0.21264 0.01933 0.35758 0.71517 0.11919 0.18045 0.07218 0.9504]>>]/Intent/Perceptual/Subtype/Image/Height 229/Filter/FlateDecode/Type/XObject/Width 588/SMask 60 0 R/Length 414/BitsPerComponent 8>>stream
x滍?......
endstream
endobj
二、尝试把该图片的对象单独拿出来,放到新页中用 FPDF_RenderPageBitmap 截图:
new_page = FPDFPage_New(doc, 12, page_w, page_h);
FPDFPage_InsertObject(new_page, page_object);
FPDFPage_GenerateContent(new_page); // 但执行到这句就出错了,无法继续执行下去
pdf_bitmap = FPDFBitmap_Create(page_w, page_h, 0);
FPDFBitmap_FillRect(pdf_bitmap, 0, 0, page_w, page_h, 0xFFFFFFFF);
FPDF_RenderPageBitmap(pdf_bitmap, new_page, 0, 0, page_w, page_h, 0, 0);
请教大家怎样提取这样的图片?