相关疑难解决方法(0)

ZLib Inflate()失败,带有-3 Z_DATA_ERROR

我试图通过调用inflate函数来解压缩文件,但是即使我使用网站上的示例程序,它总是会失败Z_DATA_ERROR.我想也许我的zip文件可能不受支持.我附上了下面的拉链头图片.

在此输入图像描述

这是我为执行解压缩而编写的函数.我立刻读了整个文件(大约34KB)并将其传递给这个函数.注意我已经尝试使用zip标头传递整个zip文件以及跳过zip文件头,并且只有在调用inflate()时,传递压缩数据才会失败,并且Z_DATA_ERROR失败.

int CHttpDownloader::unzip(unsigned char * pDest, unsigned long * ulDestLen, unsigned char *  pSource, int iSourceLen)
{
int ret = 0;
unsigned int uiUncompressedBytes = 0; // Number of uncompressed bytes returned from inflate() function
unsigned char * pPositionDestBuffer = pDest; // Current position in dest buffer
unsigned char * pLastSource = &pSource[iSourceLen]; // Last position in source buffer
z_stream strm;

// Skip over local file header
SLocalFileHeader * header = (SLocalFileHeader *) pSource;
pSource += sizeof(SLocalFileHeader) + header->sFileNameLen …
Run Code Online (Sandbox Code Playgroud)

c++ zlib unzip

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

PDF使用C#读取高亮度文本(突出显示注释)

我使用iTextSharp编写了一个提取工具,从PDF文档中提取注释信息.对于高亮注释,我只获得页面上突出显示的区域的矩形.

我的目标是提取已突出显示的文本.为此,我使用`PdfTextExtractor'.

Rectangle rect = new Rectangle(
    pdfArray.GetAsNumber(0).FloatValue, 
    pdfArray.GetAsNumber(1).FloatValue,
    pdfArray.GetAsNumber(2).FloatValue,
    pdfArray.GetAsNumber(3).FloatValue);

RenderFilter[] filter = { new RegionTextRenderFilter(rect) };
ITextExtractionStrategy strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
string textInsideRect = PdfTextExtractor.GetTextFromPage(pdfReader, pageNo, strategy);
return textInsideRect;
Run Code Online (Sandbox Code Playgroud)

返回的结果PdfTextExtractor并不完全正确.例如,它返回"即将消除纸张追逐",即使只突出显示"消除".

有趣的是,包含突出显示的"消除"的TJ的整个文本是"将要消除纸张追逐"(TJ是将文本写入页面的PDF指令).

我很想听到有关此问题的任何意见 - 也包括不涉及iTextSharp的解决方案.

c# pdf itext itextsharp

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

标签 统计

c# ×1

c++ ×1

itext ×1

itextsharp ×1

pdf ×1

unzip ×1

zlib ×1