J'ai exporté un PDF avec des champs de formulaire dans FDF et a écrit un sous pour produire un autre FDF verbatim, avec des valeurs de cellule pour les valeurs de champ de formulaire. Si je modifier le FDF dans un éditeur de texte et de modifier les valeurs, Acrobat peut lire le fichier très bien, mais la sortie de fichier avec VBA renvoie une erreur:Acrobat ne peut pas lire .FDF écrit avec Excel VBA
Adobe could not open whatever.fdf because it is either not a supported file type or because the file has been damaged
J'ai essayé deux différents types de sauts de ligne, J'ai essayé un sous-type similaire avec le formatage xfdf qui est légèrement différent avec les mêmes résultats.
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
Je suspecte un problème de codage. Pensez à utiliser la fonction 'StrConv' pour assurer un encodage correct (' vbUnicode'?) –
bonne légende mais pas de vbunicode –
'"% âãÏ "' est un littéral de chaîne codé ANSI - si cela doit être unicode, 'vbUnicode'- l'encodage '"% âãÏ "ne le transformera probablement pas en unicode équivalent; vous devrez peut-être l'utiliser en combinaison avec 'ChrW' pour émettre des caractères unicode * réels *. –