【发布时间】:2019-04-03 13:06:34
【问题描述】:
我正在生成一个 pdf,文件 ils 已生成,但由于我进行了作曲家更新(从 symfony 4.2.4 到 4.2.5),因此出现以下错误
未创建文件 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Fôrets_Su-Per_04-2019_8ddb3a64c4.pdf'(命令:/var/www/html/gestImmo/bin/wkhtml2pdf --lowquality '/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html' '生成/pdf/Mon_Beau_Chateau_Roi_Des_Frets_Su-Per_04-2019_8ddb3a64c4.pdf')。
我看了日志,没发现问题:
[2019-04-03 14:52:10] snappy.INFO: Generate from file(s) "/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html" to file "generated/pdf/Mon_Beau_Chateau_Roi_Des_Fôrets_Su-Per_04-2019_8ddb3a64c4.pdf". {"command":"/var/www/html/gestImmo/bin/wkhtml2pdf --lowquality '/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html' 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Frets_Su-Per_04-2019_8ddb3a64c4.pdf'","env":null,"timeout":false} []
[2019-04-03 14:52:10] snappy.ERROR: An error happened while generating "generated/pdf/Mon_Beau_Chateau_Roi_Des_Fôrets_Su-Per_04-2019_8ddb3a64c4.pdf". {"command":"/var/www/html/gestImmo/bin/wkhtml2pdf --lowquality '/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html' 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Frets_Su-Per_04-2019_8ddb3a64c4.pdf'","status":0,"stdout":"QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-www-data'\nlibpng warning: iCCP: known incorrect sRGB profile\nlibpng warning: iCCP: known incorrect sRGB profile\nLoading page (1/2)\n[> ] 0%\r[==============================> ] 50%\rWarning: Failed to load file:///build/runtime.js (ignore) \nWarning: Failed to load file:///build/app.js (ignore)\n[============================================================] 100%\rPrinting pages (2/2) \n[> ] \rDone \n","stderr":""} []
[2019-04-03 14:52:10] request.CRITICAL: Uncaught PHP Exception RuntimeException: "The file 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Fôrets_Su-Per_04-2019_8ddb3a64c4.pdf' was not created (command: /var/www/html/gestImmo/bin/wkhtml2pdf --lowquality '/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html' 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Frets_Su-Per_04-2019_8ddb3a64c4.pdf')." at /var/www/html/gestImmo/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php line 350 {"exception":"[object] (RuntimeException(code: 0): The file 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Fôrets_Su-Per_04-2019_8ddb3a64c4.pdf' was not created (command: /var/www/html/gestImmo/bin/wkhtml2pdf --lowquality '/tmp/knp_snappy5ca4ac7a32b3d7.26041529.html' 'generated/pdf/Mon_Beau_Chateau_Roi_Des_Frets_Su-Per_04-2019_8ddb3a64c4.pdf'). at /var/www/html/gestImmo/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php:350)"} []
这是控制器
/**
* @Route("/{id}/paid", name="rent_release_paid", methods={"GET"})
* @param RentRelease $rentRelease
* @param PdfGenerator $pdfGenerator
* @param MonthlyMailer $monthlyMailer
* @return Response
*/
public function rentIsPaid(
RentRelease $rentRelease,
PdfGenerator $pdfGenerator,
MonthlyMailer $monthlyMailer
): Response {
if (!$this->isGranted('EDIT_RENT_RELEASE', $rentRelease)) {
$this->addFlash('danger', 'Vous n\'etes pas autorisé à effectuer cette action.');
return $this->redirectToRoute('rent_release_index');
}
$rentRelease->setStatus('Payé');
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($rentRelease);
$entityManager->flush();
$pdfGenerator->generateRentReleasePdf($rentRelease); //I call the service here
$monthlyMailer->sendRentReleaseToLessees($rentRelease);
return $this->redirectToRoute(
'rent_release_pdf_delete',
['id' => $rentRelease->getId()]
);
}
这是我的服务:
/**
* @param RentRelease $rentRelease
* @throws \Twig\Error\LoaderError
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
*/
public function generateRentReleasePdf(RentRelease $rentRelease)
{
$currentDate = new \DateTime();
$currentDate = $currentDate->format('m-Y');
if ($rentRelease->getStatus() === 'Payé') {
$propertyName = $rentRelease->getPropertyName();
$propertyName= str_replace(' ', '_', $propertyName);
$lesseeName = str_replace(' ', '-', $rentRelease->getLesseeName());
$fileName = $propertyName . '_' . $lesseeName . '_' . date("m-Y") . '_';
$fileName = $fileName . bin2hex(random_bytes(5)) . '.pdf';
$html = $this->twig->render('rent_release/pdf.html.twig', [
'rent_release' => $rentRelease,
'current_date' => $currentDate,
]);
$this->knpSnappyPdf->generateFromHtml("$html", "generated/pdf/$fileName"); // on the Stack Trace, the problem is here
$rentRelease->setPdf($fileName);
$this->manager->persist($rentRelease);
$this->manager->flush();
}
}
有人有想法吗?
【问题讨论】:
-
knpSnappyPdf 服务的捆绑包是否也更新了?看起来您在该服务的日志文件中收到了一些警告。
-
没有 snappy 没有更新
-
我正在使用 Twig_Environment,由于我的作曲家更新,它已被贬值,但我完全不确定两者之间是否存在联系
-
检查您是否有在目标文件夹中写入的良好权限
-
权限正确...
标签: php symfony pdf wkhtmltopdf snappy