我使用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字符。 –