pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hewson <j...@jahewson.com>
Subject Re: pdfbox warnings
Date Wed, 08 Apr 2015 19:59:17 GMT
> On 8 Apr 2015, at 10:59, Eric Douglas <edouglas@blockhouse.com> wrote:
> 
> Where are you getting the Arial Unicode MS?  It doesn't come with Windows,
> that is, it's not installed on my Windows 8.1 Pro.
> Previously when I referenced a unicode font I used Lucida Sans Unicode.
> My Windows Arial includes Arial Black, Arial Bold, Arial Bold Italic, Arial
> Italic, and Arial Regular.
> 
As you’ve spotted, Arial Unicode MS doesn’t ship with Windows, but with Office, which
kind of ruins my whole idea. We’ll need to take a closer look at the fonts which really
are shipped with Windows. I’m on a Mac, so it’s a little tricky for me.

See: https://www.microsoft.com/typography/fonts/font.aspx?FMID=1081


> Windows likes to change their fonts, which is annoying when you have
> programs that run on different operating systems and you want consistent
> output.
> We used to reference fonts by name but even when it found the same font
> sometimes there were different versions.  We once had 2 machines running
> the same OS, Windows 98 SE, which produced different output from the same
> Courier font file name.
> I started writing Java with Windows XP Pro and copied the Lucida font files
> from the Windows Fonts folder to embed in my jar to make sure my program
> output wouldn't look different when we changed OS.
> It is best if there's a free, redistributable font file you can embed in a
> jar. (as long as they can't guarantee we can find the same font installed
> on every OS)

The problem here is that platform-specific behaviour is actually desirable: a PDF
opened in Acrobat on Windows will render Arial instead of Helvetica, if PDFBox
were to bundle its own Helvetica font, we’d be using the wrong font for the platform,
despite it being a perfectly acceptable font. We’ve had users complain that PDFBox
makes different substitutions from Evince and so the same PDF render with different
fonts on the same system when opened in different viewers - we’ve tried to fix these
kinds of issues, but the result is that fonts substitution really should be platform-specific.

Having said that, you can always bundle your own fonts and use a custom FontProvider
and PDFBox will give you consistent cross-platfrom rendering, if that’s what your
project’s requirements call for, but out-of-the-box we have to provide platform-specific
behaviour.

— John

> On Tue, Apr 7, 2015 at 10:20 PM, John Hewson <john@jahewson.com> wrote:
> 
>> I re-opened PDFBOX-1900 and added a new substitute for ZapfDingbats using
>> a font
>> available on Windows. After some research, I found that neither Windings
>> nor Webdings
>> are suitable substitutes and instead chose Arial Unicode MS because it
>> provides
>> coverage for all the ZapfDingbats glyphs via their unicode characters.
>> 
>> This fix will be available in the next 2.0 snapshot build.
>> 
>> — John
>> 
>>> On 7 Apr 2015, at 05:00, Eric Douglas <edouglas@blockhouse.com> wrote:
>>> 
>>> On Tue, Apr 7, 2015 at 2:56 AM, John Hewson <john@jahewson.com> wrote:
>>> 
>>>> 
>>>> On 6 Apr 2015, at 14:38, Tres Finocchiaro <tres.finocchiaro@gmail.com>
>>>> wrote:
>>>> 
>>>>>> 
>>>>>>> ExternalFonts.addSubstitute("ZapfDingbats", "WingdingsRegular");
>>>>>>> That will map Zapf Dingbats to Webdings. If it works then we
can
>>>> include
>>>>>> that substitution by default in PDFBox.
>>>>> 
>>>>> 
>>>>> 
>>>>> Just a lurker chiming in here... If John Hewson's statement is true,
>>>>> doesn't the substitution solve this?
>>>> 
>>>> Yes, we just need to make sure to choose a substitute (Windings,
>>>> Webdings?) which provides the necessary glyphs (I believe that they're
>> all
>>>> in Unicode, so our existing cmap mapping mechanism for TTF glyphs should
>>>> handle it once we map the font name).
>>>> 
>>> 
>>> Is that a real solution?  Is Zapfdingbats available on any platform?  Is
>>> Wingdings available on every platform or free to redistribute?
>>> I don't know what characters are in Zapfdingbats versus Wingdings, but it
>>> would need a mapping.  I tested replacing Zapfdingbats with Wingdings in
>> my
>>> own app yesterday and had to change the character code to print a check
>>> mark.
>>> 
>>> 
>>>> 
>>>>> I have a custom FontMapping.Properties
>>>>> <
>>>> 
>> https://github.com/qzindustries/qz-print/blob/1.8-pdfbox/pdfbox_1.8.4_qz/src/org/apache/pdfbox/resources/FontMapping.properties#L21
>>>>> 
>>>>> (github.com) that I use for this stuff because the font replacement on
>>>>> Linux seems to be lacking for many standard fonts.  If an equivalent
>>>>> exists, shouldn't the project try to use it?
>>>> 
>>>> Yes, usually our font mapper handles this automatically but as you've
>>>> noticed sometimes it's necessary to hard-code some hints.
>>>> 
>>>>> I personally don't like the idea of copying fonts from an Adobe area
>>>> into a
>>>>> systems area, especially as a recommendation for using a Java library.
>>>>> Something feels wrong about that, personally. :) $0.02
>>>>> 
>>>>> -Tres
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>>>> For additional commands, e-mail: users-help@pdfbox.apache.org
>>>> 
>>>> 
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message