C# 操作PDF文件

liujin9012 2012-07-30 04:24:43
现在需要一个功能,把PDF文件进行处理,进行使图像少量移拉,相当于加密,以二进制方式读取,但是怎么移位呢?
DirectoryInfo info = new DirectoryInfo(textBox1.Text);
foreach (FileInfo pdfFile in info.GetFiles("*.pdf"))
{
FileStream filestream = new FileStream(textBox1.Text + "\\" + pdfFile.Name, FileMode.Open);
byte[] pdfbyte = new byte[filestream.Length];
filestream.Read(pdfbyte, 0, (int)filestream.Length);
filestream.Close();
}
...全文
355 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanmm21cn 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

引用 13 楼 的回复:

在流的前面或者后面加几个字符,写入流中,这是加密
解密的时候,把流读出来,然后去掉那几个字符,再存回去,不就解密了
这样直接写入字符后,好像文件是不能打开的.最好是能够打,但显示位置会比原来偏移.
[/Quote]
网上有处理PDF的dll,用它将PDF存为jpg,然后对图片进行处理后再合并为PDF
wanmm21cn 2012-08-02
  • 打赏
  • 举报
回复
先toBase64,然后将base64的string进行字符换位或替换呢?
laokaizzz 2012-08-01
  • 打赏
  • 举报
回复
你要位置偏移,那没法搞
laokaizzz 2012-07-31
  • 打赏
  • 举报
回复
在流的前面或者后面加几个字符,写入流中,这是加密
解密的时候,把流读出来,然后去掉那几个字符,再存回去,不就解密了
maji_lulu 2012-07-31
  • 打赏
  • 举报
回复
我给你的网址,你肯定没有看吧
maji_lulu 2012-07-31
  • 打赏
  • 举报
回复
没删除,你不会设置读取流的起始位置啊。
hhh871030 2012-07-31
  • 打赏
  • 举报
回复
我不会,我用的时候,是将其转换成swf格式,然后去网页上面显示个flash,至于转换是用的网上的转换工具,用的时候直接调用个exe就行了。不知道对你有没有帮助
liujin9012 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

加密是在指定位置上加上几个字节,解密就是删除那几个字节啊。
别偷懒啊
[/Quote]没找到类似删除字节的方法
maji_lulu 2012-07-31
  • 打赏
  • 举报
回复
加密是在指定位置上加上几个字节,解密就是删除那几个字节啊。
别偷懒啊
liujin9012 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

C# code

System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.Read, 8192);
System.I……
[/Quote]用了你这方法试了下,结果文件打不开了,而且,我想,就算能打开,这样算是加密成功了,那如何解密.
liujin9012 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

在流的前面或者后面加几个字符,写入流中,这是加密
解密的时候,把流读出来,然后去掉那几个字符,再存回去,不就解密了
[/Quote]这样直接写入字符后,好像文件是不能打开的.最好是能够打,但显示位置会比原来偏移.
maji_lulu 2012-07-30
  • 打赏
  • 举报
回复
如果,你还不理解,请看
http://blog.csdn.net/nashty/article/details/6103748
maji_lulu 2012-07-30
  • 打赏
  • 举报
回复

System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.Read, 8192);
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
bw.Write(filecontent, 0, filecontent.Length);
bw.Flush();
bw.Close();


filecontent就是你要插入的二进制字节数组
maji_lulu 2012-07-30
  • 打赏
  • 举报
回复
PdfWriter Writer =PdfWriter.getInstance(document,new FileStream(sourcepath,FileMode.Open));
Writer.setEncryption(PdfWriter.STRENGTH128BITS, null, null, PdfWriter.AllowPrinting);
liujin9012 2012-07-30
  • 打赏
  • 举报
回复
我再顶,我就不信没人回
liujin9012 2012-07-30
  • 打赏
  • 举报
回复
再解释下...可能没说清楚.比如说,我现在有一个正常显示的PDF文件,我想让它不正常显示,向左或向右移位.类似于一个加密功能.求解.最好有例子,没做过类似的操作
@信心 2012-07-30
  • 打赏
  • 举报
回复
我不会,但要帮助顶一下。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧