替换PDF“二进制”中的内容并保存--vb.net

时间:2011-08-06 17:20:38

标签: vb.net pdf binary-data

我需要在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”?

谢谢!

/乔治

1 个答案:

答案 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