Java Code Examples for com.lowagie.text.pdf.PdfWriter#PDFX1A2001

The following examples show how to use com.lowagie.text.pdf.PdfWriter#PDFX1A2001 . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PdfXConformanceImp.java    From gcs with Mozilla Public License 2.0 4 votes vote down vote up
/**
* Business logic that checks if a certain object is in conformance with PDF/X.
   * @param writer	the writer that is supposed to write the PDF/X file
   * @param key		the type of PDF/X conformance that has to be checked
   * @param obj1		the object that is checked for conformance
   */
  public static void checkPDFXConformance(PdfWriter writer, int key, Object obj1) {
      if (writer == null || !writer.isPdfX())
          return;
      int conf = writer.getPDFXConformance();
      switch (key) {
          case PDFXKEY_COLOR:
              switch (conf) {
                  case PdfWriter.PDFX1A2001:
                      if (obj1 instanceof ExtendedColor) {
                          ExtendedColor ec = (ExtendedColor)obj1;
                          switch (ec.getType()) {
                              case ExtendedColor.TYPE_CMYK:
                              case ExtendedColor.TYPE_GRAY:
                                  return;
                              case ExtendedColor.TYPE_RGB:
                                  throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                              case ExtendedColor.TYPE_SEPARATION:
                                  SpotColor sc = (SpotColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, sc.getPdfSpotColor().getAlternativeCS());
                                  break;
                              case ExtendedColor.TYPE_SHADING:
                                  ShadingColor xc = (ShadingColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, xc.getPdfShadingPattern().getShading().getColorSpace());
                                  break;
                              case ExtendedColor.TYPE_PATTERN:
                                  PatternColor pc = (PatternColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, pc.getPainter().getDefaultColor());
                                  break;
                          }
                      }
                      else if (obj1 instanceof Color)
                          throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                      break;
              }
              break;
          case PDFXKEY_CMYK:
              break;
          case PDFXKEY_RGB:
              if (conf == PdfWriter.PDFX1A2001)
                  throw new PdfXConformanceException("Colorspace RGB is not allowed.");
              break;
          case PDFXKEY_FONT:
              if (!((BaseFont)obj1).isEmbedded())
                  throw new PdfXConformanceException("All the fonts must be embedded. This one isn't: " + ((BaseFont)obj1).getPostscriptFontName());
              break;
          case PDFXKEY_IMAGE:
              PdfImage image = (PdfImage)obj1;
              if (image.get(PdfName.SMASK) != null)
                  throw new PdfXConformanceException("The /SMask key is not allowed in images.");
              switch (conf) {
                  case PdfWriter.PDFX1A2001:
                      PdfObject cs = image.get(PdfName.COLORSPACE);
                      if (cs == null)
                          return;
                      if (cs.isName()) {
                          if (PdfName.DEVICERGB.equals(cs))
                              throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                      }
                      else if (cs.isArray()) {
                          if (PdfName.CALRGB.equals(((PdfArray)cs).getPdfObject(0)))
                              throw new PdfXConformanceException("Colorspace CalRGB is not allowed.");
                      }
                      break;
              }
              break;
          case PDFXKEY_GSTATE:
              PdfDictionary gs = (PdfDictionary)obj1;
              PdfObject obj = gs.get(PdfName.BM);
              if (obj != null && !PdfGState.BM_NORMAL.equals(obj) && !PdfGState.BM_COMPATIBLE.equals(obj))
                  throw new PdfXConformanceException("Blend mode " + obj.toString() + " not allowed.");
              obj = gs.get(PdfName.CA);
              double v = 0.0;
              if (obj != null && (v = ((PdfNumber)obj).doubleValue()) != 1.0)
                  throw new PdfXConformanceException("Transparency is not allowed: /CA = " + v);
              obj = gs.get(PdfName.ca);
              v = 0.0;
              if (obj != null && (v = ((PdfNumber)obj).doubleValue()) != 1.0)
                  throw new PdfXConformanceException("Transparency is not allowed: /ca = " + v);
              break;
          case PDFXKEY_LAYER:
              throw new PdfXConformanceException("Layers are not allowed.");
      }
  }
 
Example 2
Source File: PdfXConformanceImp.java    From itext2 with GNU Lesser General Public License v3.0 4 votes vote down vote up
/**
* Business logic that checks if a certain object is in conformance with PDF/X.
   * @param writer	the writer that is supposed to write the PDF/X file
   * @param key		the type of PDF/X conformance that has to be checked
   * @param obj1		the object that is checked for conformance
   */
  public static void checkPDFXConformance(PdfWriter writer, int key, Object obj1) {
      if (writer == null || !writer.isPdfX())
          return;
      int conf = writer.getPDFXConformance();
      switch (key) {
          case PDFXKEY_COLOR:
              switch (conf) {
                  case PdfWriter.PDFX1A2001:
                      if (obj1 instanceof ExtendedColor) {
                          ExtendedColor ec = (ExtendedColor)obj1;
                          switch (ec.getType()) {
                              case ExtendedColor.TYPE_CMYK:
                              case ExtendedColor.TYPE_GRAY:
                                  return;
                              case ExtendedColor.TYPE_RGB:
                                  throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                              case ExtendedColor.TYPE_SEPARATION:
                                  SpotColor sc = (SpotColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, sc.getPdfSpotColor().getAlternativeCS());
                                  break;
                              case ExtendedColor.TYPE_SHADING:
                                  ShadingColor xc = (ShadingColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, xc.getPdfShadingPattern().getShading().getColorSpace());
                                  break;
                              case ExtendedColor.TYPE_PATTERN:
                                  PatternColor pc = (PatternColor)ec;
                                  checkPDFXConformance(writer, PDFXKEY_COLOR, pc.getPainter().getDefaultColor());
                                  break;
                          }
                      }
                      else if (obj1 instanceof Color)
                          throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                      break;
              }
              break;
          case PDFXKEY_CMYK:
              break;
          case PDFXKEY_RGB:
              if (conf == PdfWriter.PDFX1A2001)
                  throw new PdfXConformanceException("Colorspace RGB is not allowed.");
              break;
          case PDFXKEY_FONT:
              if (!((BaseFont)obj1).isEmbedded())
                  throw new PdfXConformanceException("All the fonts must be embedded. This one isn't: " + ((BaseFont)obj1).getPostscriptFontName());
              break;
          case PDFXKEY_IMAGE:
              PdfImage image = (PdfImage)obj1;
              if (image.get(PdfName.SMASK) != null)
                  throw new PdfXConformanceException("The /SMask key is not allowed in images.");
              switch (conf) {
                  case PdfWriter.PDFX1A2001:
                      PdfObject cs = image.get(PdfName.COLORSPACE);
                      if (cs == null)
                          return;
                      if (cs.isName()) {
                          if (PdfName.DEVICERGB.equals(cs))
                              throw new PdfXConformanceException("Colorspace RGB is not allowed.");
                      }
                      else if (cs.isArray()) {
                          if (PdfName.CALRGB.equals(((PdfArray)cs).getPdfObject(0)))
                              throw new PdfXConformanceException("Colorspace CalRGB is not allowed.");
                      }
                      break;
              }
              break;
          case PDFXKEY_GSTATE:
              PdfDictionary gs = (PdfDictionary)obj1;
              PdfObject obj = gs.get(PdfName.BM);
              if (obj != null && !PdfGState.BM_NORMAL.equals(obj) && !PdfGState.BM_COMPATIBLE.equals(obj))
                  throw new PdfXConformanceException("Blend mode " + obj.toString() + " not allowed.");
              obj = gs.get(PdfName.CA);
              double v = 0.0;
              if (obj != null && (v = ((PdfNumber)obj).doubleValue()) != 1.0)
                  throw new PdfXConformanceException("Transparency is not allowed: /CA = " + v);
              obj = gs.get(PdfName.ca);
              v = 0.0;
              if (obj != null && (v = ((PdfNumber)obj).doubleValue()) != 1.0)
                  throw new PdfXConformanceException("Transparency is not allowed: /ca = " + v);
              break;
          case PDFXKEY_LAYER:
              throw new PdfXConformanceException("Layers are not allowed.");
      }
  }
 
Example 3
Source File: PdfXConformanceImp.java    From gcs with Mozilla Public License 2.0 2 votes vote down vote up
/**
 * Checks if the PDF has to be in conformance with PDF/X-1a:2001
 * @return true of the PDF has to be in conformance with PDF/X-1a:2001
 */
public boolean isPdfX1A2001() {
	return pdfxConformance == PdfWriter.PDFX1A2001;
}
 
Example 4
Source File: PdfXConformanceImp.java    From itext2 with GNU Lesser General Public License v3.0 2 votes vote down vote up
/**
 * Checks if the PDF has to be in conformance with PDF/X-1a:2001
 * @return true of the PDF has to be in conformance with PDF/X-1a:2001
 */
public boolean isPdfX1A2001() {
	return pdfxConformance == PdfWriter.PDFX1A2001;
}