gpt4 book ai didi

c# - 有没有一种简单的方法可以手动解码 FlateDecode 过滤器以提取 PDF 中的文本? C#

转载 作者:行者123 更新时间:2023-11-30 16:10:26 24 4
gpt4 key购买 nike

我发布了一个与此相关的问题 a while back但没有得到回应。从那时起,我发现 PDF 是使用 FlateDecode 编码的,我想知道是否有办法在 C# (Windows Phone 8) 中手动解码 PDF?我得到如下输出:

%PDF-1.5
%????
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
>>
endobj
5 0 obj
<<
/Filter /FlateDecode
/Length 9
>>
stream x^+

PDF 是使用 Windows Phone 8 的 SyncFusion PDF 控件创建的。不幸的是,它们目前没有文本提取功能,我在其他 WP PDF 控件中也找不到该功能。

基本上,我只想从 OneDrive 下载 PDF 并阅读 PDF 内容。想知道这是否容易实现?

最佳答案

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 个字节。这是在上面的函数中完成的。只需将流的所有字节传递给输入即可。确保字节数与指定的长度相同。

C# decode (decompress) Deflate data of PDF File

关于c# - 有没有一种简单的方法可以手动解码 FlateDecode 过滤器以提取 PDF 中的文本? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com