如何将pdf文档添加为xml文件中的代码(PHP)

时间:2018-12-19 13:40:02

标签: php xml pdf invoice

我正在分别为发票创建pdf和xml文件。

但是现在按照新规则,我需要将 pdf xml文件中的pdf文档作为代码(base64Binary [RFC 2045])发送。

在PHP 中,我正在使用 SimpleXMLElement()函数。

我应该在xml(编码)中使用编码的pdf作为标签(附件)中的出租车吗?

2 个答案:

答案 0 :(得分:1)

您可以获取文档的内容并将其转换为base64并放入XML标记

https://secure.php.net/manual/en/function.file-get-contents.php

https://secure.php.net/manual/en/function.base64-encode.php

接近它的东西。

$file = "file.pdf";


$content = file_get_contents($file);

$base64 = base64_encode($content);

$xml = new SimpleXMLElement('<xml/>');

$xml->addChild('file', "$base64");

print $xml->asXML();

答案 1 :(得分:1)

您可以尝试类似的事情

$xmlString = <<<XML 
<?xml version='1.0'?> 
<document> 
    <cmd>login</cmd> 
    <login>Richard</login> 
</document> 
XML; 
$base64Pdf = base64_encode(file_get_contents('/path/to/file.pdf'));
$simpleXml = new SimpleXMLElement($xmlString);
$simpleXml->addChild('document', $base64Pdf);

用于解码pdf的代码。

$simpleXml = new SimpleXMLElement($xmlString);
$encodedPdf = $simpleXml->document;
$decodedPdf = base64_decode($encodedPdf);
file_put_contents("/path/to/decoded.pdf", $decodedPdf);