社区
C#
帖子详情
C#如何使用ZIP解压PDF的Stream
zgke
2009-04-04 05:49:54
测试了下.NET下的GZIPStream好象不行。。。谁能解决送2000分吧:)
...全文
1231
39
打赏
收藏
C#如何使用ZIP解压PDF的Stream
测试了下.NET下的GZIPStream好象不行。。。谁能解决送2000分吧:)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
39 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
俊炎
2012-01-07
打赏
举报
回复
我想用c++解压stream ??? endstream endobj中间的东西,有哪位兄弟姐妹做过的加我QQ465461081,万分感谢!!
微wx笑
2010-08-28
打赏
举报
回复
这问题还有人关注吗?
1430 0 obj<</Length 3342/Filter/FlateDecode>>stream ??? endstream endobj
/Filter/FlateDecode 说明是使用FlateDecode
FlateDecode yes (PDF 1.2) Decompresses data encoded using the zlib/deflate compression
method, reproducing the original text or binary data.
如何判断应使用zlib还是deflate来解压缩呢?
aron3zx
2009-06-11
打赏
举报
回复
[Quote=引用 34 楼 bobob 的回复:]
或许是你使用有问题
stream之间的数据是二进制,打开文件读取的时候一定要以二进制方式打开,你看看是不是这个问题
[/Quote]
已经是提取出stream之间的2进制数据的了,放到6楼的几个函数里面用,第3个函数是会报错的,感觉上就是这种解压方式不对..
6楼的几个函数我改了一下才能用..
private byte[] CompressFile(FileStream fs) //加压
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
MemoryStream ms = new MemoryStream();
GZipStream gZipStream = new GZipStream(ms, CompressionMode.Compress);
gZipStream.Write(buffer, 0, buffer.Length);
gZipStream.Close();
ms.Flush();
byte[] data = ms.ToArray();
ms.Close();
return data;
}
private void DecompressFile(byte[] stream, string file) //解压
{
MemoryStream ms = new MemoryStream(stream);
GZipStream gzipStream = new GZipStream(ms, CompressionMode.Decompress);
FileStream fs = null;
try
{
gzipStream = new GZipStream(ms, CompressionMode.Decompress);
fs = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.Write);
int length = ReadAllBytesFromStream(gzipStream, fs);
fs.Flush();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
ms.Close();
fs.Close();
gzipStream.Close();
}
}
private static int ReadAllBytesFromStream(Stream stream, FileStream fs) //流 to 文件
{
int offset = 0;
int totalCount = 0;
int size = 100; //10759
byte[] buffer = new byte[1928 + size];//要解压的流的长度+size //1928
while (true)
{
int bytesRead = stream.Read(buffer, offset, size);
if (bytesRead == 0)
{
break;
}
fs.Write(buffer, offset, bytesRead);
offset += bytesRead;
totalCount += bytesRead;
}
return totalCount;
}
zgke
2009-04-09
打赏
举报
回复
继续顶下...谁有简单的对ZIP操作STREAM 的例子
sxmonsy
2009-04-08
打赏
举报
回复
好多分呀好多分.
bobob
2009-04-08
打赏
举报
回复
或许是你使用有问题
stream之间的数据是二进制,打开文件读取的时候一定要以二进制方式打开,你看看是不是这个问题
悔说话的哑巴
2009-04-08
打赏
举报
回复
这个实在是有难度 帮顶
zgke
2009-04-08
打赏
举报
回复
就是啊 zip .NET用什么解压呢...GZIP是不行了
zgke
2009-04-07
打赏
举报
回复
继续顶...谁能告诉我 PDF 里的 STREAM 到底是怎么压缩的..或则怎么还原的...网络上有人说是LZW ..到底是什么啊
genius_tong
2009-04-07
打赏
举报
回复
强悍~学习
whitechololate
2009-04-07
打赏
举报
回复
学习,强帖留名
jie3614
2009-04-07
打赏
举报
回复
学习一下
zzxap
2009-04-07
打赏
举报
回复
某人也遇到过这种问题,说是数据不正确造成的
冷月孤峰
2009-04-07
打赏
举报
回复
以前用.net生成PDF时是用的iTextSharp来实现的,不晓得是否能用iTextSharp反向来实现楼主的要求,晚上回去试试看。
zgke
2009-04-07
打赏
举报
回复
[Quote=引用 15 楼 wf5360308 的回复:]
引用 10 楼 zgke 的回复:
晕啊...不是 你用文本打开PDF文件 里面的stream开始和endobject结束..我不知道怎么解这个... 想找个方法解开.
这个要求没做过,楼主是不是想将PDF内的内容给截取出来啊?
这个不晓得是否有用:
http://zlping.javaeye.com/blog/308461
[/Quote]
非常感谢...内说里面的stream是什么压缩的:(
js1722
2009-04-07
打赏
举报
回复
mark..
冷月孤峰
2009-04-07
打赏
举报
回复
[Quote=引用 10 楼 zgke 的回复:]
晕啊...不是 你用文本打开PDF文件 里面的stream开始和endobject结束..我不知道怎么解这个... 想找个方法解开.
[/Quote]
这个要求没做过,楼主是不是想将PDF内的内容给截取出来啊?
这个不晓得是否有用:
http://zlping.javaeye.com/blog/308461
深海之蓝
2009-04-07
打赏
举报
回复
2000分啊。。。
pennymay
2009-04-07
打赏
举报
回复
不懂只能帮顶, 顺便学习~!~
mykelly6
2009-04-07
打赏
举报
回复
瞻仰下,呵呵
加载更多回复(19)
.NET 8本地RAG实战:零依赖向量数据库与ONNX嵌入部署
向量数据库和嵌入模型是构建RAG系统的核心基础设施,其原理在于将非结构化文本映射为高维空间中的稠密向量,并通过相似度计算实现语义检索。技术价值体现在数据可控、低延迟、合规可审计,尤其适用于金融、政务、医疗等对数据驻留有强要求的场景。典型应用包括政策文档问答、企业知识库检索、离线智能客服等。本文聚焦.NET生态落地难点,以LiteDB为本地向量存储载体,结合all-MiniLM-L6-v2的ONNX量化模型,在Windows Server环境下实现端到端RAG闭环,全程不依赖云API,突出本地向量数据库与嵌入
Selenium与Chrome Driver自动化集成:环境配置、版本管理与实战优化
Web自动化测试与数据抓取是提升开发与测试效率的关键技术,其核心在于模拟真实用户与网页的交互行为。Selenium WebDriver作为W3C标准,通过提供跨浏览器、多语言绑定的统一API,实现了对浏览器操作的编程控制。其技术价值在于将重复性UI操作自动化,广泛应用于UI自动化测试、数据采集和监控等场景。然而,实践中最大的挑战往往来自环境配置,特别是Selenium与浏览器驱动的集成。本文聚焦于解决Chrome Driver的版本匹配、自动化部署和网络依赖等痛点,通过构建智能驱动管理模块,实现版本自动检测
ASP.NET文件上传漏洞深度解析:从原理到RCE实战与防御
文件上传功能是Web应用中的常见模块,其安全实现直接关系到服务器安全。其核心原理在于服务器接收用户提交的文件数据,并根据文件扩展名、内容类型及存储路径决定后续处理逻辑。若未实施严格校验,攻击者可上传恶意脚本文件,当该文件被Web服务器(如IIS)解析执行时,即可实现远程代码执行(RCE),从而完全控制服务器。这项技术的价值在于揭示了输入验证不严与权限控制缺失带来的巨大风险,是Web安全攻防的经典场景。在ASP.NET应用场景中,诸如`hdlUploadFile.ashx`这类一般处理程序常作为文件上传接口,
文件包含漏洞深度解析:从原理到实战的攻防指南
在Web应用开发中,动态文件包含是一项用于提升代码复用性和模块化的常见功能,例如PHP中的include和require函数。其核心原理是程序根据用户输入动态加载并执行外部文件。然而,当开发者未能对用户输入进行严格校验时,该机制便可能演变为严重的安全漏洞,即文件包含漏洞。攻击者可利用此漏洞读取服务器敏感文件(如/etc/passwd)或执行任意代码,从而获取系统控制权,技术价值在于其危害性高且利用门槛相对较低。该漏洞的典型应用场景广泛存在于各类CMS、模板系统和插件架构中。本文聚焦于文件包含漏洞的深度利用,
XXE漏洞全解析:从原理、利用到防御的实战指南
XML外部实体注入(XXE)是一种基于XML解析的安全漏洞,其根源在于XML标准允许通过外部实体引用加载外部资源。攻击者通过构造恶意XML数据,利用未严格配置的解析器,可读取服务器敏感文件、探测内网服务,甚至在某些场景下实现拒绝服务攻击或远程代码执行。该漏洞在Web服务、文件上传、单点登录等涉及XML处理的场景中广泛存在,对应用安全构成严重威胁。理解XXE漏洞的原理与利用手法,掌握其防御策略,是保障Web应用安全、防止敏感信息泄露的关键环节。本文将从实战角度,深入剖析XXE漏洞的利用方式与防御方案。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章