讨论 Bug反馈 个别文档转码报疑似字体之类的错误

个别文档转码报疑似字体之类的错误

黑板青云 发表于    阅读:120    回复:4

问题描述:

debian切换了中文语言,中文字库已安装,绝大部分文档可以正常转码,个别文档无法转码,报错信息如下txt中。

环境信息:

PHP版本7.0、系统版本文库7.4

复现步骤:

转码重试,有15个文档无法转码,查看日志报错。

Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function decodeText() on null in /www/wwwroot/xxxxxx.com/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/PDFObject.php:432Stack trace:

#0 /www/wwwroot/xxxxxx.com/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/PDFObject.php(826): Smalot\PdfParser\PDFObject->getTJUsingFontFallback(NULL, Array, Object(Smalot\PdfParser\Page), 0)

#1 /www/wwwroot/xxxxxx.com/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/PDFObject.php(571): Smalot\PdfParser\PDFObject->getTextArray(Object(Smalot\PdfParser\Page))

#2 /www/wwwroot/xxxxxx.com/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/Page.php(220): Smalot\PdfParser\PDFObject->getText(Object(Smalot\PdfParser\Page))

#3 /www/wwwroot/xxxxxx.com/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/Document.php(438): Smalot\PdfParser\Page->getText()

#4 /www/wwwroot/xxxxxx.com/module/Wenku/Util/WenkuConvertUtil.php(70): Smalot\PdfParser\Document->getText()

#5 /www/wwwroot/xxxxxx.com/module/Wenku/Util/WenkuConvertUtil.php(83): Module\Wenku\Util\WenkuConvertUtil::convertPdfToText('/www/wwwroot/re...')

#6 /www/wwwroot/xxxxxx.com/module/Wenku/Job/WenkuDocProcessJob.php(205): Module\Wenku\Util\WenkuConvertUtil::toText('/www/wwwroot/re...')

#7 [internal function]: Module\Wenku\Job\WenkuDocProcessJob->handle()

#8 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(507): call_user_func_array(Array, Array)

#9 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(192): Illuminate\Container\Container->call(Array)

#10 [internal function]: Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Module\Wenku\Job\WenkuDocProcessJob))

#11 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Module\Wenku\Job\WenkuDocProcessJob))

#12 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Module\Wenku\Job\WenkuDocProcessJob))

#13 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Module\Wenku\Job\WenkuDocProcessJob))

#14 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(204): Illuminate\Pipeline\Pipeline->then(Object(Closure))

#15 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(43): Illuminate\Bus\Dispatcher->dispatchNow(Object(Module\Wenku\Job\WenkuDocProcessJob), Object(Closure))

#16 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(129): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\DatabaseJob), Array)

#17 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php(50): Illuminate\Queue\Jobs\Job->resolveAndFire(Array)

#18 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(224): Illuminate\Queue\Jobs\DatabaseJob->fire()

#19 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(165): Illuminate\Queue\Worker->process('database', Object(Illuminate\Queue\Jobs\DatabaseJob), '1', '0')

#20 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(117): Illuminate\Queue\Worker->pop('database', 'FileConvert', '0', '5', '1')

#21 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(87): Illuminate\Queue\Worker->runNextJobForDaemon('database', 'FileConvert', '0', '5', '1')

#22 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(104): Illuminate\Queue\Worker->daemon('database', 'FileConvert', '0', '4096', '5', '1', 100)

#23 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(70): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'FileConvert', '0', '4096', false)

#24 [internal function]: Illuminate\Queue\Console\WorkCommand->fire()

#25 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(507): call_user_func_array(Array, Array)

#26 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(150): Illuminate\Container\Container->call(Array)

#27 /www/wwwroot/xxxxxx.com/vendor/symfony/console/Command/Command.php(238): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#28 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#29 /www/wwwroot/xxxxxx.com/vendor/symfony/console/Application.php(840): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#30 /www/wwwroot/xxxxxx.com/vendor/symfony/console/Application.php(190): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#31 /www/wwwroot/xxxxxx.com/vendor/symfony/console/Application.php(114): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#32 /www/wwwroot/xxxxxx.com/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#33 /www/wwwroot/xxxxxx.com/artisan(45): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#34 {main}  



评论

这个是解析PDF中的文字出错了,个别文档确实不好办,可以试一下云转换,或者也可以把解析文字那个功能先关掉试一下。

 

@ModStart: 我试了下,用云转换是能正常跳转到“转换成功”或者“转换失败”的,本地转报这个错的文档,会一直卡在“正在转换”,一直到把服务器卡死。最好以后能修复下卡在“正在转码”这个问题。

/module/Wenku/SDK/smalot-pdfparser/src/Smalot/PdfParser/PDFObject.php

解析文字的功能在哪关掉?需要自己去这个文件里面改代码还是有地方可以配置?


 

这个是调用的一个第三方的库,你后台把解析文字关掉试一下解析这几个文件

 

@ModStart: 好了,多谢!

 
1
我来评论
QQ
微信
客服