找不到前几天的stream解压部分代码了

今天用pdfsharp时,搜到某人的文章可以简单萃取文本内容,相对应上次从stream中解压的文本,却找不到了。郁闷。

 

只好重写代码。 却老是遇到“Block length does not match with its complement”的异常;估计上次也没有逃过;现在把这个解决办法在此留个记号,免得再忘。

参见http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=97064

问题是deflateStream的压缩格式还是和pdf stream 略有不同;所以解压是要跳过头2个字节。

 

部分code

 

 

 

 

documentContentStart += (match.Groups[1].Index + 2); //压缩字节起始位置跳过2个字节

strLen = match.Groups[1].Length;

 

 

if (strLen < 2) {

strContent =

"";}

 

 

byte[] bufTemp = new byte[strLen - 2];

 

 

for (int i =0; i < strLen - 2; i++) {

     buftemp[i] = pdfBuf[documentContentStart + i];

}

 

解压出来的文本这个样子的

/GS1 gs
BT
/TT2 1 Tf
12 0 0 12 85.08 745.5601 Tm
0 g
0 Tc
0 Tw
( )Tj
0 -1.15 TD
( )Tj
T*
( )Tj
T*
( )Tj
T*
( )Tj
T*
( )Tj
/TT4 1 Tf
7.98 0 0 7.98 286.56 65.4601 Tm
0.2 g
-0.0015 Tc
0.001 Tw
[(TO)-5.1(TV)-4(S S.)-10.3(A )]TJ
/TT6 1 Tf
-6.0226 -1.1654 TD
0.0009 Tc
-0.0014 Tw
[(A)4.3(v)1.9(. )-7............ 比较复杂

你可能感兴趣的