gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PDF Viewer does not have continuous scrolling


From: David Chisnall
Subject: Re: PDF Viewer does not have continuous scrolling
Date: Mon, 7 Nov 2016 10:54:01 +0000

Poppler is based on xpdf (effectively the xpdf core refactored as a library).  
It isn’t a bad library, but due to its history it is GPLv2 (no ‘or later’ 
clause).  It was one of the main reasons that GNUstep remained LGPL2.1+ - 
moving to LGPLv3 would have made it incompatible with Poppler.  The GPL in 
Poppler also makes it difficult to put it in a library that can be used by 
other things (for example, if we want to do full-text searching in PDFs then we 
can’t use Apache Lucene, which is Apache licensed).

The FSF has a newer PDF library which is GPLv3+ (and was created largely 
because of Poppler’s license) and so addresses some of these issues (at least 
it’s Apache and LGPLv3 compatible).

Licensing aside, there’s no technical limitation why either approach couldn’t 
give you continuous scrolling, in the same way that TextEdit provides 
continuous scrolling of pages: you need to create a scroll view that includes 
multiple PDF views, one for each page.  A first cut at this should be under a 
hundred lines of code.  It’s a little bit more complicated to make efficient 
because each PDF page will be using a lot of memory and so you probably need 
work out which pages are visible in the scrollRangeToVisible: method and 
release ones that are more than a few pages away.

David

> On 6 Nov 2016, at 23:45, Svetlana Tkachenko <address@hidden> wrote:
> 
> Dear Riccardo, 
> 
> Thanks a lot for your details about functional difference between
> ghostscript and the xpdf/poppler PDF libraries. I appreciate it - I
> probably wouldn't've figured it out if I didn't ask. I think text
> selection is indeed useful for me to be able to take notes out of text
> in the PDF documents so I will try to pursue the xpdf/poppler apps from
> here.
> 
> Hopefully we figure out how to compile PopplerKit so that I can get
> Vindaloo running. I will ask at the distribution channels and let you
> know if I get enough help there.
> 
> Svetlana
> 
> Riccardo Mottola <address@hidden> wrote:
>> Hi,
>> 
>> 
>> On 06/11/2016 21:22, Svetlana Tkachenko wrote:
>>> I don't know where ViewPDF currently is hosted and if somebody maintains
>>>> it at all - Is it another name for the old Vindaloo viewer?
>>>> I could trace that to:
>>>> http://gna.org/projects/gsimageapps <http://gna.org/projects/gsimageapps>
>>>> 
>>>> Based on poppler.. it looks another piece of GS software that is....
>>>> bitrotting
>>> Is being based on poppler bad? Is this software bad in its design?
>> 
>> Nothing bad being based on poppler.. I don't know the design of that 
>> program so I can't tell.
>> Poppler or xpdf can give at least some PDF functionality, while for 
>> ghostscript, like used in GSPdf, each page is just an image, there won't 
>> be stuff like search and I guess it will be always slower, but the 
>> rendering quality is quite high.
>> Different approaches.
>> 
>> The discussion of xpdf vs poppler then goes beyond this thread I guess.
>> 
>>> 
>>> I tried to compile PoppletKit for Vindaloo, and it gives me this error
>>> even though I already installed libpoppler-dev and libpopplerkit0:
>>> 
>>> Making all for subproject bindings...
>>> make[3]: *** No rule to make target 'obj/bindings.obj/poppler.c.o',
>>> needed by 'obj/subproject.o'.  Stop.
>>> /usr/share/GNUstep/Makefiles/Instance/subproject.make:45: recipe for
>>> target 'internal-subproject-all_' failed
>>> make[2]: *** [internal-subproject-all_] Error 2
>>> /usr/share/GNUstep/Makefiles/Master/rules.make:311: recipe for target
>>> 'bindings.all.subproject.variables' failed
>>> make[1]: *** [bindings.all.subproject.variables] Error 2
>>> /usr/share/GNUstep/Makefiles/Master/rules.make:311: recipe for target
>>> 'PopplerKit.all.framework.variables' failed
>>> make: *** [PopplerKit.all.framework.variables] Error 2
>> 
>> Sorry I don't know, never built that software myself.
>> 
>>> Is it useful for me to try GSPdf and edit it to add continuous scrolling
>>> there?
>>> 
>>> What is a good starting point for getting continuous scrolling somehow
>>> eventually?
>> 
>> I can't think of an easy way of adding it in GSPdf. THink of GSPdf like 
>> an image viewer... one image after teh other, just that the images are 
>> your pages rendered to a /tmp
>> 
>> Riccardo
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev




reply via email to

[Prev in Thread] Current Thread [Next in Thread]