gotson / komga

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
https://komga.org
MIT License
4.1k stars 243 forks source link

[Bug] A lot of my PDF files are blurry (like if they were in low definition or badly compressed) #260

Closed Hebusing closed 4 years ago

Hebusing commented 4 years ago

Komga environment

Describe the bug

A lot (I would say most) of my PDF files that I'm opening are blurry (like if they were in low definition or badly compressed) with this new version (and some PDF are not). The CBR or CBZ files are not blurry.

Steps to reproduce

Open a PDF file with Komga. The PDF on the hard drive is of course in very good quality (see screenshots below).

Expected behavior

Actual behavior

Additional context

It was working fine with the v0.45.2-master. I can't see a pattern between the PDF that work and those that don't. I tried on Safari / iPad, Chrome / Windows 10 and Safari / MacOS and they all display the same. It is the same with the scale "Fit to Original" or "Fit to width", the picture is still blury. I'm happy to provide you with the pdf files (around a 100MB each), so let me know how to do this.

Screenshots

One of those PDF that is blurry in Komga (Chrome, Windows 10), the scale is "Fit to Original" here: image

The same in Acrobat reader: image

A PDF which is NOT blurry in Komga (Chrome, Windows 10): image

The same in Acrobat reader: image

Log file

2020-08-06 17:25:27.251  INFO 1 --- [main] org.gotson.komga.ApplicationKt           : Starting ApplicationKt on Komga with PID 1 (/app/BOOT-INF/classes started by root in /app)
2020-08-06 17:25:27.261  INFO 1 --- [main] org.gotson.komga.ApplicationKt           : No active profile set, falling back to default profiles: default
2020-08-06 17:25:38.221  INFO 1 --- [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JDBC repositories in DEFAULT mode.
2020-08-06 17:25:38.818  INFO 1 --- [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 485ms. Found 0 JDBC repository interfaces.
2020-08-06 17:25:40.757  INFO 1 --- [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@3e0a9b1d' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-08-06 17:25:40.780  INFO 1 --- [main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-08-06 17:25:42.258  INFO 1 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-08-06 17:25:42.301  INFO 1 --- [main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-08-06 17:25:42.302  INFO 1 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.37]
2020-08-06 17:25:42.527  INFO 1 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-08-06 17:25:42.527  INFO 1 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 14846 ms
2020-08-06 17:25:45.501  INFO 1 --- [main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-08-06 17:25:45.889  INFO 1 --- [main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-08-06 17:25:45.910  INFO 1 --- [main] o.s.b.a.h2.H2ConsoleAutoConfiguration    : H2 console available at '/h2-console'. Database available at 'jdbc:sqlite:/config/database.sqlite?foreign_keys=on;'
2020-08-06 17:25:48.388  INFO 1 --- [main] o.s.b.a.e.web.ServletEndpointRegistrar   : Registered '/actuator/jolokia' to jolokia-actuator-endpoint
2020-08-06 17:25:48.482  INFO 1 --- [main] io.hawt.HawtioContextListener            : Initialising hawtio services
2020-08-06 17:25:48.757  INFO 1 --- [main] io.hawt.system.ConfigManager             : Configuration will be discovered via system properties
2020-08-06 17:25:48.761  INFO 1 --- [main] io.hawt.jmx.JmxTreeWatcher               : Welcome to Hawtio 2.10.1
2020-08-06 17:25:48.786  INFO 1 --- [main] i.h.w.auth.AuthenticationConfiguration   : Starting hawtio authentication filter, JAAS realm: "karaf" authorized role(s): "admin,manager,viewer" role principal classes: ""
2020-08-06 17:25:49.873  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=/config/artemis/journal,bindingsDirectory=/config/artemis/bindings,largeMessagesDirectory=/config/artemis/largemessages,pagingDirectory=/config/artemis/paging)
2020-08-06 17:25:50.017  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221013: Using NIO Journal
2020-08-06 17:25:50.691  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221057: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being defined as 989,298,688
2020-08-06 17:25:50.735  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
2020-08-06 17:25:50.829  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601138: User anonymous is getting notification info on target resource: null []
2020-08-06 17:25:50.831  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.ActiveMQServerControlImpl@59845a40 []
2020-08-06 17:25:50.832  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601138: User anonymous is getting notification info on target resource: ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f []
2020-08-06 17:25:51.251  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221034: Waiting indefinitely to obtain live lock
2020-08-06 17:25:51.252  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221035: Live Server Obtained live lock
2020-08-06 17:25:52.733  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.AddressControlImpl@3b1895e []
2020-08-06 17:25:52.738  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.AddressControlImpl@8d52313 []
2020-08-06 17:25:52.740  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.AddressControlImpl@64f49b3 []
2020-08-06 17:25:52.742  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.AddressControlImpl@23e3a27f []
2020-08-06 17:25:52.936  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.QueueControlImpl@4028aab2 []
2020-08-06 17:25:53.013  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.QueueControlImpl@2f8b48c3 []
2020-08-06 17:25:53.021  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.QueueControlImpl@590336ed []
2020-08-06 17:26:09.526  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221080: Deploying address DLQ supporting [ANYCAST]
2020-08-06 17:26:09.530  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221003: Deploying ANYCAST queue DLQ on address DLQ
2020-08-06 17:26:09.532  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221080: Deploying address ExpiryQueue supporting [ANYCAST]
2020-08-06 17:26:09.533  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221003: Deploying ANYCAST queue ExpiryQueue on address ExpiryQueue
2020-08-06 17:26:09.534  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221003: Deploying ANYCAST queue tasks.background on address tasks.background
2020-08-06 17:26:09.660  INFO 1 --- [main] org.apache.activemq.audit.base           : AMQ601019: User anonymous is getting mbean info on target resource: org.apache.activemq.artemis.core.management.impl.AcceptorControlImpl@30eee098 []
2020-08-06 17:26:09.909  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221007: Server is now live
2020-08-06 17:26:09.910  INFO 1 --- [main] org.apache.activemq.artemis.core.server  : AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.12.0 [localhost, nodeID=2e6078e8-c19a-11ea-999d-0242ac11000f] 
2020-08-06 17:26:13.485  INFO 1 --- [main] o.g.k.i.image.ImageConverter             : Supported read formats: [JPEG 2000, JPG, tiff, bmp, bigtiff, PCX, gif, WBMP, PNG, RAW, JPEG, PNM, BigTIFF, tif, TIFF, jpeg, wbmp, jbig2, jpeg-lossless, jpg, JPEG2000, BMP, pcx, GIF, png, BIGTIFF, raw, JPEG-LOSSLESS, webp, JBIG2, pnm, TIF, jpeg2000, jpeg 2000]
2020-08-06 17:26:13.487  INFO 1 --- [main] o.g.k.i.image.ImageConverter             : Supported read mediaTypes: [, image/x-jb2, image/png, image/vnd.wap.wbmp, image/jpeg, image/x-portable-graymap, image/bmp, image/pcx, image/x-windows-bmp, image/x-windows-pcx, image/gif, image/jpeg2000, image/x-pc-paintbrush, image/webp, image/jp2, image/x-bmp, image/x-pcx, image/x-png, image/x-portable-bitmap, image/x-portable-pixmap, image/x-jbig2, image/tiff, image/x-tiff, image/x-portable-anymap]
2020-08-06 17:26:13.488  INFO 1 --- [main] o.g.k.i.image.ImageConverter             : Supported write formats: [JPG, JPEG 2000, tiff, PCX, bmp, gif, WBMP, PNG, RAW, JPEG, PNM, tif, TIFF, wbmp, jpeg, jpg, JPEG2000, pcx, BMP, GIF, png, raw, pnm, TIF, jpeg2000, jpeg 2000]
2020-08-06 17:26:13.489  INFO 1 --- [main] o.g.k.i.image.ImageConverter             : Supported write mediaTypes: [, image/vnd.wap.wbmp, image/png, image/jpeg, image/x-portable-graymap, image/pcx, image/bmp, image/x-windows-pcx, image/gif, image/x-windows-bmp, image/x-pc-paintbrush, image/jpeg2000, image/x-pcx, image/x-bmp, image/jp2, image/x-png, image/x-portable-bitmap, image/x-portable-pixmap, image/tiff, image/x-tiff, image/x-portable-anymap]
2020-08-06 17:26:13.743  INFO 1 --- [main] o.g.k.i.datasource.DatabaseMigration     : Initiating database migration from H2 to SQLite
2020-08-06 17:26:13.744  INFO 1 --- [main] o.g.k.i.datasource.DatabaseMigration     : H2 url: jdbc:h2:/config/database.h2
2020-08-06 17:26:13.748  INFO 1 --- [main] o.g.k.i.datasource.DatabaseMigration     : H2 database file: /config/database.h2.mv.db
2020-08-06 17:26:13.750  WARN 1 --- [main] o.g.k.i.datasource.DatabaseMigration     : The H2 database file does not exists: /config/database.h2.mv.db, skipping migration
2020-08-06 17:26:14.848  INFO 1 --- [main] o.f.c.internal.license.VersionPrinter    : Flyway Community Edition 6.4.4 by Redgate
2020-08-06 17:26:14.925  INFO 1 --- [main] o.f.c.internal.database.DatabaseFactory  : Database: jdbc:sqlite:/config/database.sqlite (SQLite 3.32)
2020-08-06 17:26:15.108  INFO 1 --- [main] o.f.core.internal.command.DbValidate     : Successfully validated 2 migrations (execution time 00:00.062s)
2020-08-06 17:26:15.117  INFO 1 --- [main] o.f.core.internal.command.DbMigrate      : Current version of schema "main": 20200730135746
2020-08-06 17:26:15.118  INFO 1 --- [main] o.f.core.internal.command.DbMigrate      : Schema "main" is up to date. No migration necessary.
2020-08-06 17:26:16.272  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/error**'], []
2020-08-06 17:26:16.273  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/css/**'], []
2020-08-06 17:26:16.273  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/img/**'], []
2020-08-06 17:26:16.274  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/js/**'], []
2020-08-06 17:26:16.274  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/favicon.ico'], []
2020-08-06 17:26:16.274  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/'], []
2020-08-06 17:26:16.274  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/index.html'], []
2020-08-06 17:26:16.744  INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [public/index.html]
2020-08-06 17:26:18.234  INFO 1 --- [main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 18 endpoint(s) beneath base path '/actuator'
2020-08-06 17:26:18.374  INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@45295bed, org.springframework.security.web.context.SecurityContextPersistenceFilter@1b87f7cd, org.springframework.security.web.header.HeaderWriterFilter@5295779, org.springframework.web.filter.CorsFilter@6fa98e98, org.springframework.security.web.authentication.logout.LogoutFilter@5c519da4, org.springframework.security.web.session.ConcurrentSessionFilter@64a74723, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@5f9cb96f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@ac6da02, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3e455d01, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@786d8b3b, org.springframework.security.web.session.SessionManagementFilter@172f2717, org.springframework.security.web.access.ExceptionTranslationFilter@21f9764, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1fc51af7]
2020-08-06 17:26:18.654  INFO 1 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-08-06 17:26:19.798  INFO 1 --- [main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'taskScheduler'
2020-08-06 17:26:20.215  INFO 1 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-08-06 17:26:20.546  INFO 1 --- [Thread-0 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f-491548210)] org.apache.activemq.audit.base           : AMQ601267: User anonymous is creating a core session on target resource ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f [with parameters: [e35052d4-d7c6-11ea-90ea-0242ac110002, null, ****, 102400, RemotingConnectionImpl [ID=e327bc31-d7c6-11ea-90ea-0242ac110002, clientID=null, nodeID=2e6078e8-c19a-11ea-999d-0242ac11000f, transportConnection=InVMConnection [serverID=0, id=e327bc31-d7c6-11ea-90ea-0242ac110002]], false, false, false, false, null, org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback@7d4d2afe, true, OperationContextImpl [1505977021] [minimalStore=9223372036854775807, storeLineUp=0, stored=0, minimalReplicated=9223372036854775807, replicationLineUp=0, replicated=0, paged=0, minimalPage=9223372036854775807, pageLineUp=0, errorCode=-1, errorMessage=null, executorsPending=0, executor=OrderedExecutor(tasks=[])], anonymous]]
2020-08-06 17:26:20.927  INFO 1 --- [Thread-0 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f-491548210)] org.apache.activemq.audit.base           : AMQ601267: User anonymous is creating a core session on target resource ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f [with parameters: [e38a0075-d7c6-11ea-90ea-0242ac110002, null, ****, 102400, RemotingConnectionImpl [ID=e327bc31-d7c6-11ea-90ea-0242ac110002, clientID=null, nodeID=2e6078e8-c19a-11ea-999d-0242ac11000f, transportConnection=InVMConnection [serverID=0, id=e327bc31-d7c6-11ea-90ea-0242ac110002]], false, false, false, false, null, org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback@6e58e337, true, OperationContextImpl [1006646991] [minimalStore=9223372036854775807, storeLineUp=0, stored=0, minimalReplicated=9223372036854775807, replicationLineUp=0, replicated=0, paged=0, minimalPage=9223372036854775807, pageLineUp=0, errorCode=-1, errorMessage=null, executorsPending=0, executor=OrderedExecutor(tasks=[])], anonymous]]
2020-08-06 17:26:20.988  INFO 1 --- [main] org.gotson.komga.ApplicationKt           : Started ApplicationKt in 56.899 seconds (JVM running for 66.502)
2020-08-06 17:26:21.040  INFO 1 --- [Thread-1 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@4a0c04ab)] org.apache.activemq.audit.base           : AMQ601265: User anonymous is creating a core consumer on target resource ServerSessionImpl(jms-session=*N/A*) [with parameters: [0, tasks.background, type = 'task', 0, false, true, null]]
2020-08-06 17:28:10.571  INFO 1 --- [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-08-06 17:28:10.572  INFO 1 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-08-06 17:28:10.593  INFO 1 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 21 ms
2020-08-06 17:28:10.763  WARN 1 --- [http-nio-8080-exec-1] o.s.web.servlet.PageNotFound             : No mapping for GET /dashboard
2020-08-06 17:28:33.904  INFO 1 --- [http-nio-8080-exec-4] o.g.komga.domain.service.BookAnalyzer    : Get page #3 for book: Book(name=Benoît Brisefer - T08 - Hold-Up sur pellicule, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T08%20-%20Hold-Up%20sur%20pellicule.pdf, fileLastModified=2020-07-08T11:21:20.112, fileSize=54686427, number=8, id=1163, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.230, lastModifiedDate=2020-08-05T01:46:13.275)
2020-08-06 17:28:33.906  INFO 1 --- [http-nio-8080-exec-10] o.g.komga.domain.service.BookAnalyzer    : Get page #1 for book: Book(name=Benoît Brisefer - T08 - Hold-Up sur pellicule, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T08%20-%20Hold-Up%20sur%20pellicule.pdf, fileLastModified=2020-07-08T11:21:20.112, fileSize=54686427, number=8, id=1163, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.230, lastModifiedDate=2020-08-05T01:46:13.275)
2020-08-06 17:28:33.919  INFO 1 --- [http-nio-8080-exec-8] o.g.komga.domain.service.BookAnalyzer    : Get page #2 for book: Book(name=Benoît Brisefer - T08 - Hold-Up sur pellicule, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T08%20-%20Hold-Up%20sur%20pellicule.pdf, fileLastModified=2020-07-08T11:21:20.112, fileSize=54686427, number=8, id=1163, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.230, lastModifiedDate=2020-08-05T01:46:13.275)
2020-08-06 17:30:00.003  INFO 1 --- [scheduling-1] o.g.k.i.s.PeriodicScannerController      : Periodic libraries scan starting
2020-08-06 17:30:00.009  INFO 1 --- [scheduling-1] o.g.k.application.tasks.TaskReceiver     : Sending task: ScanLibrary(libraryId=2)
2020-08-06 17:30:00.014  INFO 1 --- [Thread-0 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f-491548210)] org.apache.activemq.audit.base           : AMQ601267: User anonymous is creating a core session on target resource ActiveMQServerImpl::serverUUID=2e6078e8-c19a-11ea-999d-0242ac11000f [with parameters: [662117d6-d7c7-11ea-90ea-0242ac110002, null, ****, 102400, RemotingConnectionImpl [ID=e327bc31-d7c6-11ea-90ea-0242ac110002, clientID=null, nodeID=2e6078e8-c19a-11ea-999d-0242ac11000f, transportConnection=InVMConnection [serverID=0, id=e327bc31-d7c6-11ea-90ea-0242ac110002]], true, true, false, false, null, org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback@2261a987, true, OperationContextImpl [974312832] [minimalStore=9223372036854775807, storeLineUp=0, stored=0, minimalReplicated=9223372036854775807, replicationLineUp=0, replicated=0, paged=0, minimalPage=9223372036854775807, pageLineUp=0, errorCode=-1, errorMessage=null, executorsPending=0, executor=OrderedExecutor(tasks=[])], anonymous]]
2020-08-06 17:30:00.376  INFO 1 --- [scheduling-1] o.g.k.application.tasks.TaskReceiver     : Sending task: ScanLibrary(libraryId=1410)
2020-08-06 17:30:00.410  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Executing task: ScanLibrary(libraryId=2)
2020-08-06 17:30:00.427  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Updating library: Library(name=Comics kids, root=file:/book/Comics%20kids/, importComicInfoBook=true, importComicInfoSeries=true, importComicInfoCollection=true, importEpubBook=true, importEpubSeries=true, id=2, createdDate=2020-08-05T01:45:59.651, lastModifiedDate=2020-08-05T01:45:59.651)
2020-08-06 17:30:00.430  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanning folder: /book/Comics kids
2020-08-06 17:30:00.432  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Supported extensions: [cbz, zip, cbr, rar, pdf, epub]
2020-08-06 17:30:00.434  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Excluded patterns: [#recycle, @eaDir]
2020-08-06 17:30:02.004  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanned 49 series and 1358 books in 1.56s
2020-08-06 17:30:02.092  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Library updated in 1.66s
2020-08-06 17:30:02.101  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Task ScanLibrary(libraryId=2) executed in 1.68s
2020-08-06 17:30:02.468  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Executing task: ScanLibrary(libraryId=1410)
2020-08-06 17:30:02.470  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Updating library: Library(name=Comics adults, root=file:/book/Comics%20adults/, importComicInfoBook=true, importComicInfoSeries=true, importComicInfoCollection=true, importEpubBook=true, importEpubSeries=true, id=1410, createdDate=2020-08-05T01:46:20.062, lastModifiedDate=2020-08-05T01:46:20.062)
2020-08-06 17:30:02.471  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanning folder: /book/Comics adults
2020-08-06 17:30:02.471  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Supported extensions: [cbz, zip, cbr, rar, pdf, epub]
2020-08-06 17:30:02.472  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Excluded patterns: [#recycle, @eaDir]
2020-08-06 17:30:04.800  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanned 133 series and 1099 books in 2.33s
2020-08-06 17:30:04.996  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Library updated in 2.53s
2020-08-06 17:30:05.003  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Task ScanLibrary(libraryId=1410) executed in 2.53s
2020-08-06 17:31:36.717  INFO 1 --- [http-nio-8080-exec-6] o.g.komga.domain.service.BookAnalyzer    : Get page #2 for book: Book(name=3 Souhaits - T01 - L'assassin et la lampe, url=file:/book/Comics%20adults/3%20Souhaits/3%20Souhaits%20-%20T01%20-%20L'assassin%20et%20la%20lampe.pdf, fileLastModified=2020-07-26T09:12:06.805, fileSize=116493117, number=1, id=2414, seriesId=2413, libraryId=1410, createdDate=2020-08-05T02:47:44.449, lastModifiedDate=2020-08-05T02:47:44.456)
2020-08-06 17:31:36.717  INFO 1 --- [http-nio-8080-exec-3] o.g.komga.domain.service.BookAnalyzer    : Get page #3 for book: Book(name=3 Souhaits - T01 - L'assassin et la lampe, url=file:/book/Comics%20adults/3%20Souhaits/3%20Souhaits%20-%20T01%20-%20L'assassin%20et%20la%20lampe.pdf, fileLastModified=2020-07-26T09:12:06.805, fileSize=116493117, number=1, id=2414, seriesId=2413, libraryId=1410, createdDate=2020-08-05T02:47:44.449, lastModifiedDate=2020-08-05T02:47:44.456)
2020-08-06 17:31:36.719  INFO 1 --- [http-nio-8080-exec-7] o.g.komga.domain.service.BookAnalyzer    : Get page #1 for book: Book(name=3 Souhaits - T01 - L'assassin et la lampe, url=file:/book/Comics%20adults/3%20Souhaits/3%20Souhaits%20-%20T01%20-%20L'assassin%20et%20la%20lampe.pdf, fileLastModified=2020-07-26T09:12:06.805, fileSize=116493117, number=1, id=2414, seriesId=2413, libraryId=1410, createdDate=2020-08-05T02:47:44.449, lastModifiedDate=2020-08-05T02:47:44.456)
2020-08-06 17:40:21.689  INFO 1 --- [http-nio-8080-exec-9] o.g.komga.domain.service.BookAnalyzer    : Get page #3 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:40:21.707  INFO 1 --- [http-nio-8080-exec-6] o.g.komga.domain.service.BookAnalyzer    : Get page #1 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:40:21.717  INFO 1 --- [http-nio-8080-exec-1] o.g.komga.domain.service.BookAnalyzer    : Get page #2 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:40:29.300  INFO 1 --- [http-nio-8080-exec-2] o.g.komga.domain.service.BookAnalyzer    : Get page #4 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:40:30.142  INFO 1 --- [http-nio-8080-exec-4] o.g.komga.domain.service.BookAnalyzer    : Get page #5 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:40:48.828  INFO 1 --- [http-nio-8080-exec-8] o.g.komga.domain.service.BookAnalyzer    : Get page #6 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:41:15.074  INFO 1 --- [http-nio-8080-exec-3] o.g.komga.domain.service.BookAnalyzer    : Get page #7 for book: Book(name=L'Agent 212 - T02 - Au nom de la loi, url=file:/book/Comics%20kids/L'Agent%20212/L'Agent%20212%20-%20T02%20-%20Au%20nom%20de%20la%20loi.pdf, fileLastModified=2020-06-27T10:41:37.383, fileSize=53119380, number=4, id=63, seriesId=61, libraryId=2, createdDate=2020-08-05T01:46:05.062, lastModifiedDate=2020-08-05T01:46:05.365)
2020-08-06 17:41:56.462  INFO 1 --- [http-nio-8080-exec-5] o.g.komga.domain.service.BookAnalyzer    : Get page #2 for book: Book(name=Benoît Brisefer - T01 - Les taxis rouges, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T01%20-%20Les%20taxis%20rouges.pdf, fileLastModified=2020-07-08T11:20:28.549, fileSize=57406864, number=1, id=1170, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.257, lastModifiedDate=2020-08-05T01:46:13.261)
2020-08-06 17:41:56.465  INFO 1 --- [http-nio-8080-exec-4] o.g.komga.domain.service.BookAnalyzer    : Get page #3 for book: Book(name=Benoît Brisefer - T01 - Les taxis rouges, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T01%20-%20Les%20taxis%20rouges.pdf, fileLastModified=2020-07-08T11:20:28.549, fileSize=57406864, number=1, id=1170, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.257, lastModifiedDate=2020-08-05T01:46:13.261)
2020-08-06 17:41:56.479  INFO 1 --- [http-nio-8080-exec-2] o.g.komga.domain.service.BookAnalyzer    : Get page #1 for book: Book(name=Benoît Brisefer - T01 - Les taxis rouges, url=file:/book/Comics%20kids/Beno%C3%AEt%20Brisefer/Beno%C3%AEt%20Brisefer%20-%20T01%20-%20Les%20taxis%20rouges.pdf, fileLastModified=2020-07-08T11:20:28.549, fileSize=57406864, number=1, id=1170, seriesId=1156, libraryId=2, createdDate=2020-08-05T01:46:13.257, lastModifiedDate=2020-08-05T01:46:13.261)
2020-08-06 17:45:00.000  INFO 1 --- [scheduling-1] o.g.k.i.s.PeriodicScannerController      : Periodic libraries scan starting
2020-08-06 17:45:00.003  INFO 1 --- [scheduling-1] o.g.k.application.tasks.TaskReceiver     : Sending task: ScanLibrary(libraryId=2)
2020-08-06 17:45:00.306  INFO 1 --- [scheduling-1] o.g.k.application.tasks.TaskReceiver     : Sending task: ScanLibrary(libraryId=1410)
2020-08-06 17:45:00.309  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Executing task: ScanLibrary(libraryId=2)
2020-08-06 17:45:00.311  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Updating library: Library(name=Comics kids, root=file:/book/Comics%20kids/, importComicInfoBook=true, importComicInfoSeries=true, importComicInfoCollection=true, importEpubBook=true, importEpubSeries=true, id=2, createdDate=2020-08-05T01:45:59.651, lastModifiedDate=2020-08-05T01:45:59.651)
2020-08-06 17:45:00.312  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanning folder: /book/Comics kids
2020-08-06 17:45:00.312  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Supported extensions: [cbz, zip, cbr, rar, pdf, epub]
2020-08-06 17:45:00.313  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Excluded patterns: [#recycle, @eaDir]
2020-08-06 17:45:00.515  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanned 49 series and 1358 books in 201ms
2020-08-06 17:45:00.562  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Library updated in 250ms
2020-08-06 17:45:00.877  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Task ScanLibrary(libraryId=2) executed in 567ms
2020-08-06 17:45:01.202  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Executing task: ScanLibrary(libraryId=1410)
2020-08-06 17:45:01.204  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Updating library: Library(name=Comics adults, root=file:/book/Comics%20adults/, importComicInfoBook=true, importComicInfoSeries=true, importComicInfoCollection=true, importEpubBook=true, importEpubSeries=true, id=1410, createdDate=2020-08-05T01:46:20.062, lastModifiedDate=2020-08-05T01:46:20.062)
2020-08-06 17:45:01.204  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanning folder: /book/Comics adults
2020-08-06 17:45:01.205  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Supported extensions: [cbz, zip, cbr, rar, pdf, epub]
2020-08-06 17:45:01.206  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Excluded patterns: [#recycle, @eaDir]
2020-08-06 17:45:01.527  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.k.domain.service.FileSystemScanner   : Scanned 133 series and 1099 books in 320ms
2020-08-06 17:45:01.672  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.domain.service.LibraryScanner  : Library updated in 467ms
2020-08-06 17:45:01.763  INFO 1 --- [DefaultMessageListenerContainer-1] o.g.komga.application.tasks.TaskHandler  : Task ScanLibrary(libraryId=1410) executed in 561ms

Thank you for your support and let me know how I can help!

gotson commented 4 years ago

Can you compare the images provided via the api directly, and not displayed via the webreader? This would rule out any web display as the cause.

You can access the raw pages directly via /api/v1/books/{bookId}/pages/{pageNumber}

gotson commented 4 years ago

I checked the commits since 0.45.2 and now, and found out that the Apache PDFBox library was updated from 2.0.19 to 2.0.20. This may be the reason for it.

You could try to get the latest master of Komga, change the version back to 2.0.19, and see if that fixes the problem. That would assume that you have the necessary skills.

If not, you could provide me with one of the impacted file, and i could try on my end.

If that were the case, i would check with the PDFBox maintainer to find out if that's a regression, or if i'm using the library in an incorrect way, or with incorrect paramters.

gotson commented 4 years ago

I've digged through PDFBox's Jira and found https://issues.apache.org/jira/browse/PDFBOX-4886 which seems to be the same problem you have, at least the description matches.

Let me know if you can confirm whether rolling back 2.0.19 fixes the issue for you, in which case i would push that fix.

Hebusing commented 4 years ago

You're always really quick in answering those issues... Hats off!

I don't know how to change back to Apache PDFBox from 2.0.19 to 2.0.20 but I'm ok to try if you could provide me with the steps.

I did try with the API https://my_komga_IP_server/api/v1/books/{bookId}/pages/{pageNumber} and the output is still blurry.

I've tested the file "FlowerBompA6.pdf" available on the apache web site you've provided above and it is blurry.

I've uploaded 1 PDF file without issues: https://we.tl/t-eW1bgPt5D9 And another one with issues: https://we.tl/t-XOWODVY8E2 I think the links will be valid for 1 week only.

Hope this will help you!

By the way, I love your work and would be happy to help you in any way possible. Let me know. ;-)

gotson commented 4 years ago

Thanks for the files. I tested with the blurry one and can confirm that the latest PDFBox is the cause.

gotson commented 4 years ago

:tada: This issue has been resolved in version 0.52.2 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

Hebusing commented 4 years ago

I also confirm that the v0.52.2-master fix this issue! Thanks a million for your amazing support...