我的cronjob中有一个导出PDF文件以将其保存为存档的功能。一切正常,除了PDF的语言始终默认为英语。这是我的功能:
public function writePdf($document_id){
$invoice = $this->invoiceRepository->get($document_id);
$pdf = $this->invoicePdfGeneratorService->execute($invoice);
return $this->fileFactory->create(
'_' . $document_id . '.pdf',
$pdf->render(),
DirectoryList::VAR_DIR ,
'application/pdf'
);
}
我在invoiceGeneratorService
中研究了通向getPdf
方法的Magento\Sales\Model\Order\Pdf\Invoice.php
的位置,然后发现了以下内容:
if ($invoice->getStoreId()) {
$this->_localeResolver->emulate($invoice->getStoreId());
$this->_storeManager->setCurrentStore($invoice->getStoreId());
}
由于我在单一商店模式下运行Magento 2,并且我的后端以及我的销售电子邮件都以德语(de_DE)呈现PDF,所以我假设我错过了一些东西。我的猜测是传递带有writePdf函数的商店ID,但是我没有找到有关如何执行此操作的任何文档。有人有主意吗?