2011-08-06 24 views
0

我需要向PDF中添加一些信息(修剪框屬性,實際上用媒體框和修剪框屬性取代媒體框屬性),並且我沒有支持在我的PDF電機中。所以我發現我可以使用Notepad ++將PDF作爲文本文件打開,只需將Trim Box proporties作爲字符串添加並保存即可。現在我想用vb.net自動完成它。當我使用Stream Reader/Writer時,PDF會被破壞並丟失信息(Stream Reader不會讀取所有NUL,SOH,STX等)。我嘗試使用ReadAllBytes/WriteAllBytes來閱讀PDF,然後它運行良好,但是我不知道如何用「Media Box ... Trim Box ...」替換「Media Box ...」。我嘗試使用IndexOf,但我只能搜索單個字節而不是整個字符串。我不擅長二進制,這也許是問題:-)。有沒有人有更好的方式做它或如何搜索我的字符串「媒體盒」二進制?用PDF格式替換內容「binary」並保存 - vb.net

謝謝!

/喬治

回答

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