社区
C#
帖子详情
C#如何使用ZIP解压PDF的Stream
zgke
2009-04-04 05:49:54
测试了下.NET下的GZIPStream好象不行。。。谁能解决送2000分吧:)
...全文
1323
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)
Python调用mu
pdf
cpp64.dll实现OFD转
PDF
/图片的工业级方案
OFD(开放式版式文档)作为国产电子凭证核心格式,其解析与转换面临格式语义复杂、信创环境受限、签名保真要求高等挑战。基于Mu
PDF
深度定制的mu
pdf
cpp64.dll,通过内置OFD解析器、资源预加载与字体回退机制,在不依赖Java/.NET的前提下,实现高精度、低开销、可部署于麒麟/统信等国产操作系统的OFD转
PDF
及OFD转图片能力。该方案兼顾DPI可控渲染、透明通道保留、签章坐标精准映射等工程细节,适用于电子发票归档、财税SaaS存证、政务电子文件交换等强合规场景,是当前Python生态中少数经生产
C#
操作Excel全方案解析:从OLE到EPPlus/NPOI选型与实战
在.NET企业级开发中,数据导入导出是高频刚需,而Excel作为通用数据交换格式,其处理能力直接影响系统稳定性和开发效率。其核心原理在于通过不同技术栈解析或生成Excel文件格式,技术价值在于实现自动化、提升数据处理准确性与效率。应用场景广泛覆盖后台报表生成、数据中台ETL、办公自动化工具等。本文聚焦
C#
生态,深入剖析包括OLE/COM Interop、Open XML SDK、EPPlus及NPOI在内的六种主流方案,针对**大数据量**处理和**服务器环境**部署等关键需求,提供清晰的选型指南与避坑实践
Zstandard压缩算法:速度与压缩比的极致平衡实战指南
数据压缩是计算机科学中的基础技术,通过特定算法减少数据存储空间和传输带宽。其核心原理在于消除数据冗余,常见算法如LZ系列通过字典编码实现。在工程实践中,压缩技术的价值体现在提升存储效率、加速网络传输和降低计算负载。随着大数据和实时应用普及,对压缩算法的性能要求日益提高,尤其在**日志处理**和**数据库备份**场景中,传统工具往往难以兼顾速度与压缩率。Zstandard(zstd)算法通过混合匹配策略与优化的熵编码器,在保持高压缩率的同时大幅提升处理速度,特别适合需要频繁读写和高并发的应用环境。
.NET 8本地RAG实战:零依赖向量数据库与ONNX嵌入部署
向量数据库和嵌入模型是构建RAG系统的核心基础设施,其原理在于将非结构化文本映射为高维空间中的稠密向量,并通过相似度计算实现语义检索。技术价值体现在数据可控、低延迟、合规可审计,尤其适用于金融、政务、医疗等对数据驻留有强要求的场景。典型应用包括政策文档问答、企业知识库检索、离线智能客服等。本文聚焦.NET生态落地难点,以LiteDB为本地向量存储载体,结合all-MiniLM-L6-v2的ONNX量化模型,在Windows Server环境下实现端到端RAG闭环,全程不依赖云API,突出本地向量数据库与嵌入
STM32智慧仓库管理系统:从传感器到上位机的物联网开发实战
物联网系统通过感知层、网络层和应用层的协同工作,实现对物理世界的智能监控与管理。其核心原理在于利用嵌入式微控制器(如STM32)采集传感器数据,通过无线通信模块(如Wi-Fi、蓝牙)传输至服务器或上位机软件进行处理、存储与可视化。这种架构的技术价值在于实现了数据的实时采集、远程传输与智能控制,解决了传统人工巡检效率低、响应慢的痛点,广泛应用于环境监测、智能仓储、工业自动化等领域。本文聚焦于一个典型的**智慧仓库管理系统**,深入剖析了其基于**STM32微控制器**的硬件设计、传感器驱动、通信协议制定以及上
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章