Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-4740

PDFPrintable is creating incomplete/odd output for some printers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.0.15, 2.0.18
    • None
    • Rendering

    Description

      We are printing PDF documents using the class "PDFPrintable", which is working fine for most documents and printers.

      Except we found a case where the bounding box of an image is seemingly clipping the contents of a following page in the printouts of certain documents:

      (The whole cropbox of the second page should have been painted red - compare attached document)

      The following code can be used to reproduce the issue:

      private static void print(PDDocument document, String printerName) throws PrinterException {
          PrinterJob printerJob = PrinterJob.getPrinterJob();
          PrintService printService = null;
          // loop through all printers
          for (PrintService deviceInterface : PrinterJob.lookupPrintServices()) {
              // get printer name
              String name = deviceInterface.getName();
      
              // is this the requested printer?
              if (name != null && name.equals(printerName)) {
                  // configure print job for the printer
                  printService = deviceInterface;
                  break;
              }
          }
          if (printService == null) {
              return;
          }
      
          printerJob.setPrintService(printService);
          // set source and execute print job.
          printerJob.setPrintable(
              new PDFPrintable(
                  document, null, false, 0, true
              )
          );
      
          // init print attribute set.
          PrintRequestAttributeSet printAttrSet = new HashPrintRequestAttributeSet();
          printAttrSet.add(new JobName(printerName + "_job", Locale.ENGLISH));
          printAttrSet.add(PrintQuality.HIGH);
      
          // do print.
          printerJob.print(printAttrSet);
      }
      

      The attached document is leading to the erroneous results, when printed via the given method. (and using the following printers)

      Some printers, which show this odd behaviour are:

      • "Adobe PDF" printer (most likely the easiest way to reproduce this issue)
      • Konica Minolta C658
      • Kyocera FS-4100DN

      We are suspecting, an compatibility issue of PCL based printer drivers and some instructions created by PDFBox.

      This behaviour can only then be seen for the following page, if it does contain certain operations. (Such as Shaders => as demonstrated in the example document)

      Attachments

        1. out.pdf
          15 kB
          Christian Appl
        2. image-2020-01-16-09-13-50-730.png
          39 kB
          Christian Appl
        3. image-2020-01-15-15-01-32-976.png
          32 kB
          Christian Appl
        4. holdPrinter.png
          64 kB
          Christian Appl

        Activity

          People

            Unassigned Unassigned
            capSVD Christian Appl
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: