2017-03-17 107 views
1

創建一個可與皇家郵政獲得標籤代碼,並試圖打印出來的標籤的應用程序。在他們的文檔了「printLabelResponse」包含在一個Base64字符串中的PDF,他們舉了一個例子:解碼Base64編碼字符串不加載PDF格式

JVBERi0xLjYKJeTjz9IKMSAwIG9iagpbL1BERi9JbWFnZUIvSW1hZ2VDL0ltYWdlSS9UZXh0XQpl 
bmRvYmoKNCAwIG9iago8PC9MZW5ndGggNSAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJl 
YW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjgKZW5kb2JqCjYgMCBvYmoKPDwv 
+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncA 
AQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6 
Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo 
MCBSCi9JbmZvIDMyIDAgUgovSURbPDZDM0VCNEREOEE2OTNEMTVDQUE4NkRCODJCNTc2MTIzPjw2 
QzNFQjRERDhBNjkzRDE1Q0FBODZEQjgyQjU3NjEyMz5dCj4+CnN0YXJ0eHJlZgoxMzI1OTYKJSVF 
T0YK 

下面的代碼是什麼我使用,然後創建PDF文件(base64Text是從上面的 Base64編碼字符串)

string filePath = Directory.GetCurrentDirectory() + @"\output_PDF.pdf"; 
byte[] base64TextBytes = Convert.FromBase64String(base64Text); 
File.WriteAllBytes(filePath, base64TextBytes); 

我已經轉換其他的PDF文件轉換爲Base64編碼字符串,並將其保存到一個文本文件,然後複製粘貼文本到SOAP/XML文件中,即時通訊本地閱讀,模擬的「標籤」標籤從皇家郵政消息,並設法保存此爲它成功打開一個PDF。

從我的代碼從上面的base64字符串輸出爲:

%PDF-1.6 
%���� 
1 0 obj 
[/PDF/ImageB/ImageC/ImageI/Text] 
endobj 
4 0 obj 
<</Length 5 0 R 
/Filter/FlateDecode 
>> 
stream 
x�  
endstream 
endobj 
5 0 obj 
8 
endobj 
6 0 obj 
<</Length 7 0 R 
/Filter/FlateDecode 
>> 
stream 
x�3P0P0��P016R032219 00000 n 
0000032743 00000 n 
0000103489 00000 n 
0000103467 00000 n 
0000105070 00000 n 
0000104685 00000 n 
0000105419 00000 n 
trailer 
<</Size 47 
/Root 46 0 R 
/Info 36 0 R 
/ID[<3EE4406240B0CAF52A875D8627BD8575><3EE4406240B0CAF52A875D8627BD8575>] 
>> 
startxref 
105491 
%%EOF 

然而,這在Adobe Acrobat閱讀不會開放,它不會打印。

這是Base64編碼字符串不正確還是我讀它不正確,或者其他什麼東西? 非常感謝

回答

0

我嘗試使用過程中,我知道的作品和文件無法在Adobe Reader中打開它轉換。我使用了其他地方找到的不同的編碼字符串,它工作。您在問題中使用的base64字符串格式不正確。

+0

謝謝您的確認。希望這可以幫助任何人使用RoyalMail API進行標籤打印。希望它只是一個在docs那畸形。 – ThatUser