Custom fonts break DOMPDF PDF exports #1463

Closed
opened 2026-02-05 00:59:09 +03:00 by OVERLORD · 5 comments
Owner

Originally created by @codemicro on GitHub (Nov 27, 2019).

Describe the bug
When a PDF export for any page is requested, a HTTP 500 error is thrown and the user is told "an unknown error occured".

Steps To Reproduce
Steps to reproduce the behavior:

  1. Attempt to generate a PDF export
  2. See error

Your Configuration (please complete the following information):

  • Exact BookStack Version: v0.27.5
  • PHP Version: 7.2.24 on Ubuntu 18.04.1
  • Hosting Method: Apache2

Additional context
I am using Lato from Google Fonts through custom header content. The issue persists without this font enabled. Here's the styling:

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<style>
a, a:hover, a:focus, .text-button, .text-button:hover, .text-button:focus {
  color: #0288D1;
  fill: #0288D1;
}
body, button, input, select, label, textarea {
  font-family: 'Lato', sans-serif;
}
.Codemirror, pre, #markdown-editor-input, .editor-toolbar, .code-base {
  font-family: monospace;
}
</style>

Error log:

[2019-11-26 21:01:51] production.ERROR: fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//29d5b677c886f2174ede1236ece8bf48.ufm): failed to open stream: No such file or directory {"userId":1,"email":"nothing to see here","exception":"[object] (ErrorException(code: 0): fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//29d5b677c886f2174ede1236ece8bf48.ufm): failed to open stream: No such file or directory at /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php:45)
[stacktrace]
#0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'fopen(/var/www/...', '/var/www/bookst...', 45, Array)
#1 /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php(45): fopen('/var/www/bookst...', 'w+')
#2 /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php(361): FontLib\\AdobeFontMetrics->write('/var/www/bookst...', NULL)
#3 /var/www/bookstack/vendor/dompdf/dompdf/src/FontMetrics.php(212): FontLib\\TrueType\\File->saveAdobeFontMetrics('/var/www/bookst...')
#4 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1537): Dompdf\\FontMetrics->registerFont(Array, 'https://fonts.g...', NULL)
#5 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1376): Dompdf\\Css\\Stylesheet->_parse_font_face('font-family: 'L...')
#6 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(388): Dompdf\\Css\\Stylesheet->_parse_css('@font-face {\
  ...')
#7 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(622): Dompdf\\Css\\Stylesheet->load_css_file('https://fonts.g...', 3)
#8 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(724): Dompdf\\Dompdf->processHtml()
#9 /var/www/bookstack/vendor/barryvdh/laravel-dompdf/src/PDF.php(200): Dompdf\\Dompdf->render()
#10 /var/www/bookstack/vendor/barryvdh/laravel-dompdf/src/PDF.php(146): Barryvdh\\DomPDF\\PDF->render()
#11 /var/www/bookstack/app/Entities/ExportService.php(140): Barryvdh\\DomPDF\\PDF->output()
#12 /var/www/bookstack/app/Entities/ExportService.php(86): BookStack\\Entities\\ExportService->htmlToPdf('<!doctype html>...')
#13 /var/www/bookstack/app/Http/Controllers/PageController.php(512): BookStack\\Entities\\ExportService->pageToPdf(Object(BookStack\\Entities\\Page))
#14 [internal function]: BookStack\\Http\\Controllers\\PageController->exportPdf('python', 'sqlite3-basics-...')
#15 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#16 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('exportPdf', Array)
#17 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(BookStack\\Http\\Controllers\\PageController), 'exportPdf')
#18 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runController()
#19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Route->run()
#20 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#21 /var/www/bookstack/app/Http/Controllers/Controller.php(44): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(131): BookStack\\Http\\Controllers\\Controller->BookStack\\Http\\Controllers\\{closure}(Object(BookStack\\Http\\Request), Object(Closure))
#23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#24 /var/www/bookstack/app/Http/Middleware/Authenticate.php(48): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#25 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\Authenticate->handle(Object(BookStack\\Http\\Request), Object(Closure))
#26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#27 /var/www/bookstack/app/Http/Middleware/Localization.php(70): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\Localization->handle(Object(BookStack\\Http\\Request), Object(Closure))
#29 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#31 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(BookStack\\Http\\Request), Object(Closure))
#32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#33 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(68): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(BookStack\\Http\\Request), Object(Closure))
#35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(BookStack\\Http\\Request), Object(Closure))
#38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Session\\Middleware\\StartSession->handle(Object(BookStack\\Http\\Request), Object(Closure))
#41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#42 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(BookStack\\Http\\Request), Object(Closure))
#44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#46 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(BookStack\\Http\\Request), Object(Closure))
#47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(660): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(BookStack\\Http\\Request))
#51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(601): Illuminate\\Routing\\Router->runRoute(Object(BookStack\\Http\\Request), Object(Illuminate\\Routing\\Route))
#52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(590): Illuminate\\Routing\\Router->dispatchToRoute(Object(BookStack\\Http\\Request))
#53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(BookStack\\Http\\Request))
#54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(BookStack\\Http\\Request))
#55 /var/www/bookstack/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(58): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(BookStack\\Http\\Request), Object(Closure))
#57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#58 /var/www/bookstack/vendor/fideloper/proxy/src/TrustProxies.php(56): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#59 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(45): Fideloper\\Proxy\\TrustProxies->handle(Object(BookStack\\Http\\Request), Object(Closure))
#60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\TrustProxies->handle(Object(BookStack\\Http\\Request), Object(Closure))
#61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(BookStack\\Http\\Request), Object(Closure))
#64 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#65 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#66 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(BookStack\\Http\\Request), Object(Closure))
#67 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#68 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#69 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(BookStack\\Http\\Request), Object(Closure))
#70 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request))
#71 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request))
#72 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#73 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(BookStack\\Http\\Request))
#74 /var/www/bookstack/public/index.php(54): Illuminate\\Foundation\\Http\\Kernel->handle(Object(BookStack\\Http\\Request))
#75 {main}
"} 
Originally created by @codemicro on GitHub (Nov 27, 2019). **Describe the bug** When a PDF export for any page is requested, a HTTP 500 error is thrown and the user is told "an unknown error occured". **Steps To Reproduce** Steps to reproduce the behavior: 1. Attempt to generate a PDF export 2. See error **Your Configuration (please complete the following information):** - Exact BookStack Version: v0.27.5 - PHP Version: 7.2.24 on Ubuntu 18.04.1 - Hosting Method: Apache2 **Additional context** I am using Lato from Google Fonts through custom header content. The issue persists without this font enabled. Here's the styling: ```html <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"> <style> a, a:hover, a:focus, .text-button, .text-button:hover, .text-button:focus { color: #0288D1; fill: #0288D1; } body, button, input, select, label, textarea { font-family: 'Lato', sans-serif; } .Codemirror, pre, #markdown-editor-input, .editor-toolbar, .code-base { font-family: monospace; } </style> ``` Error log: ``` [2019-11-26 21:01:51] production.ERROR: fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//29d5b677c886f2174ede1236ece8bf48.ufm): failed to open stream: No such file or directory {"userId":1,"email":"nothing to see here","exception":"[object] (ErrorException(code: 0): fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//29d5b677c886f2174ede1236ece8bf48.ufm): failed to open stream: No such file or directory at /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php:45) [stacktrace] #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'fopen(/var/www/...', '/var/www/bookst...', 45, Array) #1 /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php(45): fopen('/var/www/bookst...', 'w+') #2 /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php(361): FontLib\\AdobeFontMetrics->write('/var/www/bookst...', NULL) #3 /var/www/bookstack/vendor/dompdf/dompdf/src/FontMetrics.php(212): FontLib\\TrueType\\File->saveAdobeFontMetrics('/var/www/bookst...') #4 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1537): Dompdf\\FontMetrics->registerFont(Array, 'https://fonts.g...', NULL) #5 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1376): Dompdf\\Css\\Stylesheet->_parse_font_face('font-family: 'L...') #6 /var/www/bookstack/vendor/dompdf/dompdf/src/Css/Stylesheet.php(388): Dompdf\\Css\\Stylesheet->_parse_css('@font-face {\ ...') #7 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(622): Dompdf\\Css\\Stylesheet->load_css_file('https://fonts.g...', 3) #8 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(724): Dompdf\\Dompdf->processHtml() #9 /var/www/bookstack/vendor/barryvdh/laravel-dompdf/src/PDF.php(200): Dompdf\\Dompdf->render() #10 /var/www/bookstack/vendor/barryvdh/laravel-dompdf/src/PDF.php(146): Barryvdh\\DomPDF\\PDF->render() #11 /var/www/bookstack/app/Entities/ExportService.php(140): Barryvdh\\DomPDF\\PDF->output() #12 /var/www/bookstack/app/Entities/ExportService.php(86): BookStack\\Entities\\ExportService->htmlToPdf('<!doctype html>...') #13 /var/www/bookstack/app/Http/Controllers/PageController.php(512): BookStack\\Entities\\ExportService->pageToPdf(Object(BookStack\\Entities\\Page)) #14 [internal function]: BookStack\\Http\\Controllers\\PageController->exportPdf('python', 'sqlite3-basics-...') #15 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array) #16 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('exportPdf', Array) #17 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(BookStack\\Http\\Controllers\\PageController), 'exportPdf') #18 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runController() #19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Route->run() #20 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #21 /var/www/bookstack/app/Http/Controllers/Controller.php(44): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(131): BookStack\\Http\\Controllers\\Controller->BookStack\\Http\\Controllers\\{closure}(Object(BookStack\\Http\\Request), Object(Closure)) #23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #24 /var/www/bookstack/app/Http/Middleware/Authenticate.php(48): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #25 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\Authenticate->handle(Object(BookStack\\Http\\Request), Object(Closure)) #26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #27 /var/www/bookstack/app/Http/Middleware/Localization.php(70): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\Localization->handle(Object(BookStack\\Http\\Request), Object(Closure)) #29 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #31 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(BookStack\\Http\\Request), Object(Closure)) #32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #33 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(68): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(BookStack\\Http\\Request), Object(Closure)) #35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(BookStack\\Http\\Request), Object(Closure)) #38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Session\\Middleware\\StartSession->handle(Object(BookStack\\Http\\Request), Object(Closure)) #41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #42 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(BookStack\\Http\\Request), Object(Closure)) #44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #46 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(BookStack\\Http\\Request), Object(Closure)) #47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(660): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(BookStack\\Http\\Request)) #51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(601): Illuminate\\Routing\\Router->runRoute(Object(BookStack\\Http\\Request), Object(Illuminate\\Routing\\Route)) #52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(590): Illuminate\\Routing\\Router->dispatchToRoute(Object(BookStack\\Http\\Request)) #53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(BookStack\\Http\\Request)) #54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(BookStack\\Http\\Request)) #55 /var/www/bookstack/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(58): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(BookStack\\Http\\Request), Object(Closure)) #57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #58 /var/www/bookstack/vendor/fideloper/proxy/src/TrustProxies.php(56): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #59 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(45): Fideloper\\Proxy\\TrustProxies->handle(Object(BookStack\\Http\\Request), Object(Closure)) #60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): BookStack\\Http\\Middleware\\TrustProxies->handle(Object(BookStack\\Http\\Request), Object(Closure)) #61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(BookStack\\Http\\Request), Object(Closure)) #64 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #65 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #66 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(BookStack\\Http\\Request), Object(Closure)) #67 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #68 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #69 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(BookStack\\Http\\Request), Object(Closure)) #70 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(BookStack\\Http\\Request)) #71 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(BookStack\\Http\\Request)) #72 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #73 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(BookStack\\Http\\Request)) #74 /var/www/bookstack/public/index.php(54): Illuminate\\Foundation\\Http\\Kernel->handle(Object(BookStack\\Http\\Request)) #75 {main} "} ```
OVERLORD added the 🚚 Export System label 2026-02-05 00:59:09 +03:00
Author
Owner

@vladaman commented on GitHub (Mar 18, 2020):

Having same issue on version v0.28.3 with custom font nunito.

@vladaman commented on GitHub (Mar 18, 2020): Having same issue on version v0.28.3 with custom font nunito.
Author
Owner

@codemicro commented on GitHub (Apr 8, 2020):

This issue still persists in v0.28.3, but I've worked around it using wkhtmltopdf.

@vladaman The stuff on this page might help you. https://www.bookstackapp.com/docs/admin/pdf-rendering/

@codemicro commented on GitHub (Apr 8, 2020): This issue still persists in v0.28.3, but I've worked around it using `wkhtmltopdf`. @vladaman The stuff on this page might help you. https://www.bookstackapp.com/docs/admin/pdf-rendering/
Author
Owner

@much-doge commented on GitHub (Apr 29, 2020):

I can confirm this issue in version 0.29.0 when using custom fonts.

@much-doge commented on GitHub (Apr 29, 2020): I can confirm this issue in version 0.29.0 when using custom fonts.
Author
Owner

@much-doge commented on GitHub (Apr 29, 2020):

I can confirm this issue in version 0.29.0 when using custom fonts.

[2020-04-29 01:53:00] production.ERROR: fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//overpass-normal_83033295e801a82997c5257f78cabea4.ufm): failed to open stream: No such file or directory {"userId":1,"exception":"[object] (ErrorException(code: 0): fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//overpass-normal_83033295e801a82997c5257f78cabea4.ufm): failed to open stream: No such file or directory at /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php:45)

The solution mentioned here https://github.com/BookStackApp/BookStack/issues/1112#issuecomment-440848048 didn't work either.

@much-doge commented on GitHub (Apr 29, 2020): > I can confirm this issue in version 0.29.0 when using custom fonts. > [2020-04-29 01:53:00] production.ERROR: fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//overpass-normal_83033295e801a82997c5257f78cabea4.ufm): failed to open stream: No such file or directory {"userId":1,"exception":"[object] (ErrorException(code: 0): fopen(/var/www/bookstack/app/vendor/dompdf/dompdf/lib/fonts//overpass-normal_83033295e801a82997c5257f78cabea4.ufm): failed to open stream: No such file or directory at /var/www/bookstack/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php:45) The solution mentioned here https://github.com/BookStackApp/BookStack/issues/1112#issuecomment-440848048 didn't work either.
Author
Owner

@ssddanbrown commented on GitHub (May 30, 2021):

This should now be addressed in the current latest release, as discussed within https://github.com/BookStackApp/BookStack/issues/2746. Will therefore close this off.

@ssddanbrown commented on GitHub (May 30, 2021): This should now be addressed in the current latest release, as discussed within https://github.com/BookStackApp/BookStack/issues/2746. Will therefore close this off.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#1463