来自 RoyalMail 的解码 Base64 字符串未加载为 PDF
Decoded Base64 string from RoyalMail not loading as PDF
正在创建一个与 RoyalMail 通信以获取标签代码并尝试打印标签的应用程序。在他们的文档中,'printLabelResponse' 包含 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 文件中的 'label' 标签中,我在本地读取以模拟来自 Royal Mail 的消息,并设法将其保存为 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 字符串是不是不正确,还是我读错了,还是其他原因?
非常感谢
我尝试使用我知道有效的过程转换它,但无法在 adobe 中打开该文件 reader。我使用了在其他地方找到的不同编码字符串并且它有效。您问题中的 base64 字符串格式错误。
正在创建一个与 RoyalMail 通信以获取标签代码并尝试打印标签的应用程序。在他们的文档中,'printLabelResponse' 包含 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 文件中的 'label' 标签中,我在本地读取以模拟来自 Royal Mail 的消息,并设法将其保存为 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 字符串是不是不正确,还是我读错了,还是其他原因? 非常感谢
我尝试使用我知道有效的过程转换它,但无法在 adobe 中打开该文件 reader。我使用了在其他地方找到的不同编码字符串并且它有效。您问题中的 base64 字符串格式错误。