在本地使用pdftron Webviewer服务器时无法加载pdf文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在本地使用pdftron Webviewer服务器时无法加载pdf文件相关的知识,希望对你有一定的参考价值。

我正在尝试将webviewer与webviewer服务器一起使用。 Cookie中需要传递安全信息。在docker-compose中,设置要转发的属性。

 webviewer:
    container_name: webviewer-server
    image: pdftron/webviewer-server:latest
    ports:
      - "8090:8090"
    environment:
#      - INCLUDE_DEMO='true'
      - TRN_FORWARD_CLIENT_COOKIES='true'
      - TRN_DEBUG_MODE='true'

查看来自Webviewer服务器的日志,信息即已获取。它接收necercery cookie信息以进行对服务器的调用。但是当校准完成后,连接被拒绝。这是错误消息。

| Creating WS connection at endpoint ...
webviewer-server | 09-Apr-2020 14:38:22.554 INFO [http-apr-8090-exec-2] com.pdftron.server.ConnectionService$WebsocketConnection.<init> Creating WS connection 31204549507251, 1 connections total
webviewer-server | 09-Apr-2020 14:38:22.804 INFO [http-apr-8090-exec-10] com.pdftron.server.BlackBoxMessenger.accessLog 31204549507251 accessing http://localhost:8080/secured/fileContent/2?downloadFile=false for page info
webviewer-server | 09-Apr-2020 14:38:22.805 INFO [http-apr-8090-exec-10] com.pdftron.server.ServerJob.<init> Starting pages: /usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json
webviewer-server | 09-Apr-2020 14:38:22.806 INFO [http-apr-8090-exec-10] com.pdftron.server.ServerJob.<init> Starting image: /usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg
webviewer-server | 09-Apr-2020 14:38:22.806 INFO [pool-2-thread-12] com.pdftron.server.DocReference.fetchLocalBlocking needs_fetch: http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.807 INFO [pool-2-thread-7] com.pdftron.server.DocReference.fetchLocalBlocking needs_fetch: http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.807 INFO [pool-2-thread-12] com.pdftron.server.DocManagement.createFetchThread Adding task http://localhost:8080/secured/fileContent/2?downloadFile=falseto fetch queue
webviewer-server | 09-Apr-2020 14:38:22.810 INFO [pool-5-thread-1] com.pdftron.server.DocManagement$DocFetchTask.doFetch Kicking off potential fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.810 INFO [pool-5-thread-1] com.pdftron.server.DocManagement.constructConnection setting http://localhost:8080/secured/fileContent/2?downloadFile=false custom header Cookie: Idea-b611af61=fc8272b5-372b-48b6-a200-03b7204be819; fingerprint=e68d8c46-0988-4ac0-9154-1aac1be432b0; access_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsY2VyZ2ljK2JAZXJ5Y2UuY29tIiwiY2xpZW50SWQiOiJXRUJfQVBQTElDQVRJT04iLCJ1c2VySWQiOjIsImlzcyI6ImVyeWNlLmNvbSIsImp0aSI6IjkwZDE1ZDBkLTU4ZTctNGM4YS1hMTBlLTdiYjlmZTA1Y2ZhYSIsImlhdCI6MTU4NjQ0Mjg2NSwiZXhwIjoxNTg2NDQzMTY1fQ.zFqrjvEZTwe9QC5azI1HrNG4wbxGrydGdUVli0XmRmf7wv9-KKBFeNsljluz9o7lSXPsAzdrlq5Bhzd3hKk1aw; refresh_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsY2VyZ2ljK2JAZXJ5Y2UuY29tIiwiY2xpZW50SWQiOiJXRUJfQVBQTElDQVRJT04iLCJ1c2VySWQiOjIsImlzcyI6ImVyeWNlLmNvbSIsImp0aSI6IjAyYjc4MjRkLTJjMDAtNDRkNi04ZTY2LWM1OGU0NmM4ODE5YiIsImlhdCI6MTU4NjQ0Mjg2NSwiZXhwIjoxNTg2ODc0ODY1fQ.60jj88_lSH_ZngtfAt6EyzfMzZltCTNxLRYHxfGCUrEKd46O6b9bxCSS23_w4vHvecJebYOtpPgUlD0kYLeiHw; JSESSIONID=CB48A60A9DE9EAFBC94F9C4A98089EB3
webviewer-server | 09-Apr-2020 14:38:22.812 WARNING [pool-2-thread-1] com.pdftron.server.ServerJob.run During job id (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg):
webviewer-server | Exception during job run of type image
webviewer-server |  java.lang.Exception: WebViewer Server complete job (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg) failed: unable to complete fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | Connection refused (Connection refused)
webviewer-server |      at com.pdftron.server.ServerJob.run(Unknown Source)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
webviewer-server |      at java.lang.Thread.run(Thread.java:748)
webviewer-server | 09-Apr-2020 14:38:22.812 WARNING [pool-2-thread-4] com.pdftron.server.ServerJob.run During job id (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json):
webviewer-server | Exception during job run of type pages
webviewer-server |  java.lang.Exception: WebViewer Server complete job (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json) failed: unable to complete fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | Connection refused (Connection refused)
webviewer-server |      at com.pdftron.server.ServerJob.run(Unknown Source)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
webviewer-server |      at java.lang.Thread.run(Thread.java:748)
webviewer-server | Closing ws connection from endpoint: CloseReason: code [1001], reason [null]
webviewer-server | 09-Apr-2020 14:39:06.386 INFO [http-apr-8090-exec-4] com.pdftron.server.ConnectionService$Connection.onCloseImpl Closing Connection, 0 outstanding

现在“?downloadFile = false”部分有点误导,但实际上并没有停止文件提取。所有服务都在我的本地主机上运行。只是webviewer容器当然是在docker容器中运行的,而这是通过docker-compose up命令启动的。而且似乎无法进行从容器到本地主机服务的调用。日志未显示在服务中,Webviewer仅表示连接被拒绝。

[第一次尝试,我尝试使用相同的URL用arraybuffer来获取文件,并且有效。当然,在这种情况下,现在也在本地主机上运行的前端可以获取文件,而我可以在前端显示该文件。

但是添加服务器后,服务器将无法访问该服务。这也是我在前端角度应用程序上配置文件读取的方式

const configWebViewer = 
  pdftronServer: serverUrlWithoutPort + ':8090/',
  path: '../../../../../../../../../../assets/webviewer',
  withCredentials: true,
  initialDoc: fileUrl,

WebViewer(configWebViewer, this.viewer.nativeElement)

现在另一件事是,由于某种原因,在控制台中,我收到警告,“ withCredentials”不是已知属性。

我整天都在看这本书,即使我仍在尝试,我也不知道该做什么。因此,如果有任何我可以得到的信息,也许是我的疏忽或将不胜感激的事情。

亲切的问候

答案

对于可能遇到与我相同或相似情况的人。问题当然是“本地主机”。我所有的服务都在同一个docker compose中运行。因此它们位于我认为docker-compose为它们创建的同一网络上。

我将容器名称的url中的'localhost'更改为'myService',如何在docker-compose文件中对其进行定义。因此,webviewer服务器能够通过我给它的URL从服务中检索文件。

此问题不应在部署/生产等中出现。因为在那种情况下,您并没有在localhost等环境中运行所有程序。

这在本地只是个问题,因为我正在尝试测试PdfTron。

另外,我尚未解决的另一个问题实际上是,因为我在Docker容器中启动了服务,所以无法调试该服务。当然,在某些情况下,我需要在PdfTron中查看文件并调试该服务。

但是也许docker-compose创建网络的方式也许是我可以尝试的方法。无论哪种方式,我希望这对遇到此问题的任何人都有帮助。

以上是关于在本地使用pdftron Webviewer服务器时无法加载pdf文件的主要内容,如果未能解决你的问题,请参考以下文章

PDFTron full api 未在 WebViewer 中加载

只读表格填写 - PDFTron

使用 NodeJs 在 Pdftron 中导入多个注释

PDFTron 使用硬编码密码解密 PDF

如何在Nodejs的pdftron中保存注释?

删除ThumbnailViewController PDFTron上的编辑按钮