替换PDF中的内容;“二进制”;和save-vb.net

替换PDF中的内容;“二进制”;和save-vb.net,vb.net,pdf,binary-data,Vb.net,Pdf,Binary Data,我需要在PDF中添加一些信息(修剪框比例,实际上用“媒体框”和“修剪框比例”替换“媒体框比例”),我的PDF引擎中不支持这些信息。因此,我发现我可以使用记事本++将PDF作为文本文件打开,只需将修剪框比例添加为字符串并保存即可。现在我想用vb.net自动完成它。当我使用流阅读器/写入器时,PDF会被破坏并丢失信息(我想流阅读器不会读取所有的NUL、SOH、STX等)。我试着用ReadAllBytes/WriteAllBytes读取PDF,但效果很好,但我不知道如何将“媒体盒…”替换为“媒体盒…修

我需要在PDF中添加一些信息(修剪框比例,实际上用“媒体框”和“修剪框比例”替换“媒体框比例”),我的PDF引擎中不支持这些信息。因此,我发现我可以使用记事本++将PDF作为文本文件打开,只需将修剪框比例添加为字符串并保存即可。现在我想用vb.net自动完成它。当我使用流阅读器/写入器时,PDF会被破坏并丢失信息(我想流阅读器不会读取所有的NUL、SOH、STX等)。我试着用ReadAllBytes/WriteAllBytes读取PDF,但效果很好,但我不知道如何将“媒体盒…”替换为“媒体盒…修剪盒…”。我尝试使用IndexOf,但我只能搜索单个字节,不能搜索整个字符串。我不擅长二进制,这可能就是问题所在:-)。有人有更好的方法吗?或者我如何用二进制搜索我的字符串“媒体盒”

谢谢


/Georg

如果成功获取字符串中的pdf,请查看以查找字符串中的(子)字符串

我用它把字节转换成字符串:

        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和Unicode文件