我需要在PDF中添加一些信息(Trim Box比例,实际上用Media Box和Trim Box比例替换Media Box比例),而且我的PDF电机没有支持。所以我发现我可以使用Notepad ++将PDF打开为文本文件,只需将Trim Box比例添加为字符串并保存即可。现在我想用vb.net自动完成。当我使用Stream Reader / Writer时,PDF被破坏并丢失信息(Stream Reader不读取所有NUL,SOH,STX等我猜)。我尝试使用ReadAllBytes / WriteAllBytes读取PDF然后它运行良好,但后来我不知道如何用“Media Box ... Trim Box ...”替换“Media Box ...”。我尝试使用IndexOf,但我只能搜索单个字节而不是整个字符串。我不擅长二进制,这或许是问题:-)。有没有人有更好的方法呢,或者如何在二进制文件中搜索我的字符串“Media Box”?
谢谢!
/乔治
答案 0 :(得分:0)
如果你成功地在字符串中获取pdf,请查看http://msdn.microsoft.com/en-us/library/8460tsh1(v=VS.90).aspx#Y1420以在字符串中找到(子)字符串
我使用它将字节转换为字符串:
Dim buf(ssd.SrcLength - 1) As Byte
EditRdFile = ReadFile(ssd.SrcFileIx)
EditRdFile.Seek(ssd.SrcStart - 1, SeekOrigin.Begin)
EditRdFile.Read(buf, 0, ssd.SrcLength)
If CurrEdtSession.IsUnicode Then
Dim enc As System.Text.Encoding = New System.Text.UnicodeEncoding(False, True, True)
value = enc.GetString(buf)
Else
value = System.Text.Encoding.Default.GetString(buf)
End If
来自我的编辑器,处理ansi和unicodefiles