我发布了一个与此a while back相关的问题,但没有得到任何回应。从那时起,我发现PDF是用FlateDecode编码的,我想知道有没有办法在C# (Windows Phone8)中手动解码PDF?我得到的输出如下:
%PDF-1.5
%????
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
>>
endobj
5 0 obj
<<
/Filter /FlateDecode
/Length 9
>>
stream x^+
不幸的是,这些控件目前还没有文本提取功能,我在其他的WP控件中也找不到该功能。
基本上,所有我想要的是从OneDrive下载和阅读PDF的内容。好奇这是不是很容易做到?
发布于 2018-03-29 19:54:27
private static string decompress(byte[] input)
{
byte[] cutinput = new byte[input.Length - 2];
Array.Copy(input, 2, cutinput, 0, cutinput.Length);
var stream = new MemoryStream();
using (var compressStream = new MemoryStream(cutinput))
using (var decompressor = new DeflateStream(compressStream, CompressionMode.Decompress))
decompressor.CopyTo(stream);
return Encoding.Default.GetString(stream.ToArray());
}
根据下面类似的问题,必须从流中剪切流的前2个字节。这是在上述函数中完成的。只需将流的所有字节传递给输入即可。确保bytecount与指定的长度相同。
https://stackoverflow.com/questions/25798538
复制相似问题