Hi Tilman Have tested the changes in the snapshot jar on OS/400 and seems to work well!
Thank you! Matt On 24 March 2018 at 22:22, Matt Pryor <[email protected]> wrote: > Excellent thanks Tilman & team. > > ~Matt > > On 24 March 2018 at 21:55, Tilman Hausherr <[email protected]> wrote: > >> Am 24.03.2018 um 19:37 schrieb Matt Pryor: >> >>> Hi Tillman >>> >>> Okay, sure I'd be happy to help test. >>> >>> Below is what I've written for a new class OS400FontDirFinder, although I >>> haven't had a chance to test it on our AS400 to double check if the files >>> out of /QIBM can be read like normal files or if I need to use the JT400 >>> toolkit to access the files (as is the case with some folders), which >>> might >>> complicate things. Hopefully I'll test on Monday and get back to you. >>> >> >> Issue created: >> https://issues.apache.org/jira/browse/PDFBOX-4165 >> >> Snapshot available: >> https://repository.apache.org/content/groups/snapshots/org/a >> pache/pdfbox/pdfbox-app/2.0.10-SNAPSHOT/ >> >> Tilman >> >> >> >> >>> package org.apache.fontbox.util.autodetect; >>> >>> public class OS400FontDirFinder extends NativeFontDirFinder { >>> >>> public OS400FontDirFinder() { >>> // TODO Auto-generated constructor stub >>> } >>> >>> @Override >>> protected String[] getSearchableDirectories() { >>> return new String[] { System.getProperty("user.home") + >>> "/.fonts", // user >>> "/QIBM/ProdData/OS400/Fonts" >>> }; >>> } >>> >>> } >>> >>> And this was my change to determineDirFinder() in FontFileFinder: >>> >>> private FontDirFinder determineDirFinder() >>> { >>> final String osName = System.getProperty("os.name"); >>> if (osName.startsWith("Windows")) >>> { >>> return new WindowsFontDirFinder(); >>> } >>> else >>> { >>> if (osName.startsWith("Mac")) >>> { >>> return new MacFontDirFinder(); >>> } >>> else if (osName.startsWith("OS/400")) { >>> return new OS400FontDirFinder(); >>> } else >>> { >>> return new UnixFontDirFinder(); >>> } >>> } >>> } >>> >>> On 23 March 2018 at 19:35, Tilman Hausherr <[email protected]> >>> wrote: >>> >>> Am 23.03.2018 um 18:07 schrieb Matt Pryor: >>>> >>>> Hi again Tillman >>>>> >>>>> Believe I sorted this by copying the AS400 fonts folder into >>>>> System.getProperty("user.home")/.fonts >>>>> >>>>> If I wanted to provide an OS400 implementation of NativeFontDirFinder >>>>> to >>>>> look in the right place, and modify FontFileFinder to use it, what's >>>>> the >>>>> best way of doing it? >>>>> >>>>> Either modify directly by creating an OS400FontDirFinder that is >>>> assigned >>>> in FontFileFinder, or assign your own fontmapper to FontMappers.set(). >>>> (this is somewhat complicated, so I suggest you use the workaround you >>>> mentioned, and let us implement something for OS/400 for version 2.0.10 >>>> and >>>> higher). >>>> >>>> If you're willing to test, I'll create an issue. >>>> >>>> Tilman >>>> >>>> >>>> >>>> >>>> >>>> >>>> Thanks for your help >>>>> Matt >>>>> >>>>> >>>>> >>>>> >>>>> On 23 March 2018 at 16:11, Matt Pryor <pryor@international-presence. >>>>> com> >>>>> wrote: >>>>> >>>>> Thanks Tillman, none of those folders exist, and after a little >>>>> research >>>>> >>>>>> it seems that there are supposed to be true-type fonts in this folder: >>>>>> >>>>>> /QIBM/ProdData/OS400/Fonts/TTFonts/ >>>>>> >>>>>> Although we don't have any, possibly because it's an optional extra >>>>>> which >>>>>> we haven't installed yet. >>>>>> >>>>>> Are truetype fonts what you look for? >>>>>> >>>>>> The os.name system property is "OS/400". >>>>>> >>>>>> Unable to find the .pdfbox.cache file at present, not sure where it's >>>>>> being written to. >>>>>> >>>>>> Thanks again for your help, much appreciated. >>>>>> >>>>>> Matt >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 22 March 2018 at 20:24, Tilman Hausherr <[email protected]> >>>>>> wrote: >>>>>> >>>>>> Hello Matt, >>>>>> >>>>>>> Your attachments don't go through. But what I can tell you is that >>>>>>> 1.8 >>>>>>> had many errors in rendering, so the many differences are usually >>>>>>> not a >>>>>>> bug, but an improvement. >>>>>>> >>>>>>> The case you describe ("but it looks nothing like Courier") could be >>>>>>> because of missing fonts on your system so the "Liberation Sans" >>>>>>> fallback >>>>>>> is used. Try to have Courier, Arial/Helvetica, Times, Symbol and Zapf >>>>>>> Dingats in your font directory. >>>>>>> Another possibility is that fonts are not found. Please post the >>>>>>> .pdfbox.cache from the user directory. Does this file have all the >>>>>>> fonts on >>>>>>> your system? If not, please tell what directories to search. >>>>>>> >>>>>>> To find out more, have a look at >>>>>>> \fontbox\src\main\java\org\apache\fontbox\util\autodetect\ >>>>>>> UnixFontDirFinder.java >>>>>>> and the other "finders" in the package. >>>>>>> >>>>>>> It has >>>>>>> >>>>>>> return new String[] { System.getProperty("user.home") + >>>>>>> "/.fonts", // user >>>>>>> "/usr/local/fonts", // local >>>>>>> "/usr/local/share/fonts", // local shared >>>>>>> "/usr/share/fonts", // system >>>>>>> "/usr/X11R6/lib/X11/fonts" // X >>>>>>> }; >>>>>>> >>>>>>> If that one isn't enough, please tell where the fonts are, and tell >>>>>>> also >>>>>>> what System.getProperty("os.name") returns. >>>>>>> >>>>>>> Tilman >>>>>>> >>>>>>> >>>>>>> Am 22.03.2018 um 20:24 schrieb Matt Pryor: >>>>>>> >>>>>>> Hello >>>>>>> >>>>>>>> I'm resending this from the address I'm subscribed with, so hope it >>>>>>>> doesn't appear twice. >>>>>>>> >>>>>>>> We use PDFBox in our software which runs on IBM system i / AS400s to >>>>>>>> convert PDF files to TIFFs. We have many users who are on older >>>>>>>> JVMs, >>>>>>>> such >>>>>>>> as 1.5, so have to maintain code for them as well as people on newer >>>>>>>> JVMs. >>>>>>>> >>>>>>>> We recently swapped over to PDFBox 2.0.8 for users who are on JRE >>>>>>>> 1.6 >>>>>>>> or >>>>>>>> above and have had complaints from customers about the fonts >>>>>>>> changing. >>>>>>>> The >>>>>>>> issue does not occur when I test in a Windows environment but does >>>>>>>> on >>>>>>>> the >>>>>>>> iSeries JVM. >>>>>>>> >>>>>>>> I have attached two sample TIFF files, the first is generated with >>>>>>>> PDFBox 1.8 and the second with PDFBox 2.0.8 (named accordingly) >>>>>>>> >>>>>>>> I put logging output in the SetFontAndSize class and confirm that >>>>>>>> it's >>>>>>>> using "Courier-Bold" in 2.0.8, but it looks nothing like Courier. >>>>>>>> >>>>>>>> This is the code to create a BufferedImage from the PDF pages, which >>>>>>>> then gets inserted into the TIFF file >>>>>>>> >>>>>>>> PDFBox 1.8 code: >>>>>>>> ============== >>>>>>>> >>>>>>>> int imageType = BufferedImage.TYPE_INT_RGB; >>>>>>>> >>>>>>>> int resolution = (int) PRINTER_RESOLUTION; >>>>>>>> >>>>>>>> PDDocument document = PDDocument.load( pdf ); >>>>>>>> >>>>>>>> List<PDPage> pages = >>>>>>>> >>>>>>>> (List <PDPage>) document.getDocumentCatalog().getAllPages(); >>>>>>>> >>>>>>>> int pagesSize = pages.size(); >>>>>>>> >>>>>>>> for (int i = 1 - 1; i < pagesSize; i++) { >>>>>>>> >>>>>>>> PDPage page = pages.get(i); >>>>>>>> >>>>>>>> BufferedImage image = page.convertToImage(imageType, resolution); >>>>>>>> >>>>>>>> …. >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> PDFBox 2.0.8 code: >>>>>>>> ================ >>>>>>>> >>>>>>>> PDDocument document = PDDocument.load( pdf ); >>>>>>>> PDPageTree pagetree = document.getDocumentCatalog(). >>>>>>>> getPages(); >>>>>>>> int pagesSize = pagetree.getCount(); >>>>>>>> PDFRenderer pdfRenderer = new PDFRenderer(document); >>>>>>>> for (int i = 1 - 1; i < pagesSize; i++) { >>>>>>>> PDPage page = pagetree.get(i); >>>>>>>> BufferedImage image = pdfRenderer.renderImageWithDPI(i, 200, >>>>>>>> ImageType.RGB); >>>>>>>> ... >>>>>>>> } >>>>>>>> >>>>>>>> I'm hoping someone might be able to point me in the direction of >>>>>>>> what's >>>>>>>> going wrong or perhaps give me a better idea about how PDFBox >>>>>>>> generates or >>>>>>>> gets fonts. I realise the platform that I'm running on is rather >>>>>>>> obscure! >>>>>>>> >>>>>>>> Many thanks in advance >>>>>>>> -- >>>>>>>> Matt Pryor >>>>>>>> >>>>>>>> The International Presence Group of Companies >>>>>>>> >>>>>>>> EMAIL:[email protected] <mailto:[email protected]> >>>>>>>> >>>>>>>> URL:www.International-presence.com <http://www.international-pres >>>>>>>> ence.com/> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------ >>>>>>>> --------- >>>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>>> For additional commands, e-mail: [email protected] >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> -- >>>>>> Matt Pryor >>>>>> >>>>>> The International Presence Group of Companies >>>>>> >>>>>> EMAIL: [email protected] >>>>>> >>>>>> URL: www.International-presence.com >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Matt Pryor > > The International Presence Group of Companies > > EMAIL: [email protected] > > URL: www.International-presence.com > > > -- Matt Pryor The International Presence Group of Companies EMAIL: [email protected] URL: www.International-presence.com

