我使用FDF中的表單字段導出PDF,並編寫了一個子表達字段值的單元格值,以逐字輸出另一個FDF。如果我在一個文本編輯器編輯FDF和更改值時,Acrobat可以讀取文件就好了,但VBA文件輸出拋出一個錯誤:Acrobat無法讀取使用Excel VBA編寫的.FDF
Adobe could not open whatever.fdf because it is either not a supported file type or because the file has been damaged
我已經嘗試了兩種不同類型的換行符,我已經嘗試了與xfdf格式相似的子文件,它與相同的結果略有不同。
Sub something()
Dim sht As Worksheet
Set sht = Sheets("owssvr")
Dim lastrow As Integer
lastrow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Fileout As Object
Dim x As Integer
For x = 2 To lastrow
Set Fileout = fso.CreateTextFile("C:\Users\blabla\" & x & ".fdf", True, True)
Fileout.Write "%FDF-1.2" & vbCrLf & _
"%âãÏÓ" & vbCrLf & _
"1 0 obj" & vbCrLf & _
"<</FDF<</F(MyDocument.pdf)/Fields[<</T(Adobe Form Field)/V(" & sht.Range("U" & x) & ")>>]/ID[<4ED54800AC4A3D41ABE4F4C7B12A3D23><609E705B7532334B8F914CFF4C09F2A0>]/UF(MyDocument.pdf)>>/Type/Catalog>>" & vbCrLf & _
"endobj" & vbCrLf & _
"trailer" & vbCrLf & _
"<</Root 1 0 R>>" & vbCrLf & _
"%%EOF" & vbCrLf
Fileout.Close
Next x
End Sub
我懷疑編碼問題。考慮使用'StrConv'函數來確保正確的編碼('vbUnicode'?) –
好的標註,但沒有用vbunicode –
'「%ÏÓ」'是ANSI編碼的字符串 - 如果這意味着unicode,'vbUnicode'-編碼'「%ÏÓ」''可能不會神奇地將它變成unicode等價物;您可能需要將它與'ChrW'結合使用來發布*實際* unicode字符。 –