/** * Creates a Type3Glyph canvas with a new Content Stream. * * @param pdfDocument the document that this canvas is created for */ Type3Glyph(PdfDocument pdfDocument, float wx, float llx, float lly, float urx, float ury, boolean isColor) { super((PdfStream)new PdfStream().makeIndirect(pdfDocument), null, pdfDocument); writeMetrics(wx, llx, lly, urx, ury, isColor); }
/** * Creates an efficient stream. No temporary array is ever created. The {@code InputStream} * is totally consumed but is not closed. The general usage is: * <br> * <pre> * PdfDocument document = ?; * InputStream in = ?; * PdfStream stream = new PdfStream(document, in, PdfOutputStream.DEFAULT_COMPRESSION); * ? * stream.flush(); * in.close(); * </pre> * * @param inputStream the data to write to this stream * @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) */ public PdfStream(PdfDocument doc, InputStream inputStream, int compressionLevel) { super(); if (doc == null) { throw new PdfException(PdfException.CannotCreatePdfStreamByInputStreamWithoutPdfDocument); } makeIndirect(doc); if (inputStream == null) { throw new IllegalArgumentException("The input stream in PdfStream constructor can not be null."); } this.inputStream = inputStream; this.compressionLevel = compressionLevel; put(PdfName.Length, new PdfNumber(-1).makeIndirect(doc)); }
/** * Sets the XMP Metadata. * * @param xmpMetadata the {@code byte[]} of XMP Metadata to set. * @return this {@link PdfPage} instance. * @throws IOException in case of writing error. */ public PdfPage setXmpMetadata(byte[] xmpMetadata) throws IOException { PdfStream xmp = (PdfStream) new PdfStream().makeIndirect(getDocument()); xmp.getOutputStream().write(xmpMetadata); xmp.put(PdfName.Type, PdfName.Metadata); xmp.put(PdfName.Subtype, PdfName.XML); put(PdfName.Metadata, xmp); return this; }
/** * Draws the appearance of a radio button with a specified value. * * @param width the width of the radio button to draw * @param height the height of the radio button to draw * @param value the value of the button * @deprecated Please, use {@link #drawRadioAppearance(float, float, String)} instead. */ @Deprecated protected void drawPdfA1RadioAppearance(float width, float height, String value) { PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvas = new PdfCanvas(stream, new PdfResources(), getDocument()); Rectangle rect = new Rectangle(0, 0, width, height); PdfFormXObject xObject = new PdfFormXObject(rect); drawBorder(canvas, xObject, width, height); drawRadioField(canvas, rect.getWidth(), rect.getHeight(), !"Off".equals(value)); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(value), xObject.getPdfObject()); PdfWidgetAnnotation widget = getWidgets().get(0); xObject.getPdfObject().getOutputStream().writeBytes(stream.getBytes()); widget.setNormalAppearance(normalAppearance); }
/** * Draws the appearance of a radio button with a specified value. * * @param width the width of the radio button to draw * @param height the height of the radio button to draw * @param value the value of the button * @deprecated Please, use {@link #drawRadioAppearance(float, float, String)} instead. */ @Deprecated protected void drawPdfA1RadioAppearance(float width, float height, String value) { PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvas = new PdfCanvas(stream, new PdfResources(), getDocument()); Rectangle rect = new Rectangle(0, 0, width, height); PdfFormXObject xObject = new PdfFormXObject(rect); drawBorder(canvas, xObject, width, height); drawRadioField(canvas, rect.getWidth(), rect.getHeight(), !"Off".equals(value)); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(value), xObject.getPdfObject()); PdfWidgetAnnotation widget = getWidgets().get(0); xObject.getPdfObject().getOutputStream().writeBytes(stream.getBytes()); widget.setNormalAppearance(normalAppearance); }
/** * @deprecated use {@link #drawPdfA2CheckAppearance(float, float, String, int)} instead. */ @Deprecated protected void drawPdfA1CheckAppearance(float width, float height, String selectedValue, int checkType) { PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvas = new PdfCanvas(stream, new PdfResources(), getDocument()); Rectangle rect = new Rectangle(0, 0, width, height); PdfFormXObject xObject = new PdfFormXObject(rect); this.checkType = checkType; drawBorder(canvas, xObject, width, height); drawPdfACheckBox(canvas, width, height, !"Off".equals(selectedValue)); xObject.getPdfObject().getOutputStream().writeBytes(stream.getBytes()); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(selectedValue), xObject.getPdfObject()); PdfDictionary mk = new PdfDictionary(); mk.put(PdfName.CA, new PdfString(text)); PdfWidgetAnnotation widget = getWidgets().get(0); widget.put(PdfName.MK, mk); widget.setNormalAppearance(normalAppearance); }
/** * @deprecated use {@link #drawPdfA2CheckAppearance(float, float, String, int)} instead. */ @Deprecated protected void drawPdfA1CheckAppearance(float width, float height, String selectedValue, int checkType) { PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvas = new PdfCanvas(stream, new PdfResources(), getDocument()); Rectangle rect = new Rectangle(0, 0, width, height); PdfFormXObject xObject = new PdfFormXObject(rect); this.checkType = checkType; drawBorder(canvas, xObject, width, height); drawPdfACheckBox(canvas, width, height, !"Off".equals(selectedValue)); xObject.getPdfObject().getOutputStream().writeBytes(stream.getBytes()); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(selectedValue), xObject.getPdfObject()); PdfDictionary mk = new PdfDictionary(); mk.put(PdfName.CA, new PdfString(text)); PdfWidgetAnnotation widget = getWidgets().get(0); widget.put(PdfName.MK, mk); widget.setNormalAppearance(normalAppearance); }
protected PdfPage(PdfDocument pdfDocument, PageSize pageSize) { this((PdfDictionary) new PdfDictionary().makeIndirect(pdfDocument)); PdfStream contentStream = (PdfStream) new PdfStream().makeIndirect(pdfDocument); getPdfObject().put(PdfName.Contents, contentStream); getPdfObject().put(PdfName.Type, PdfName.Page); getPdfObject().put(PdfName.MediaBox, new PdfArray(pageSize)); getPdfObject().put(PdfName.TrimBox, new PdfArray(pageSize)); if (pdfDocument.isTagged()) { setTabOrder(PdfName.S); } }
/** * Embed a file to a PdfDocument. * * @param doc PdfDocument to add the file to * @param fileStore byte[] containing the file * @param description file description * @param fileDisplay actual file name stored in the pdf * @param mimeType mime-type of the file * @param fileParameter Pdfdictionary containing fil parameters * @param afRelationshipValue AFRelationship key value, @see AFRelationshipValue. If <CODE>null</CODE>, @see AFRelationshipValue.Unspecified will be added. * @return PdfFileSpec containing the file specification of the file as Pdfobject */ public static PdfFileSpec createEmbeddedFileSpec(PdfDocument doc, byte[] fileStore, String description, String fileDisplay, PdfName mimeType, PdfDictionary fileParameter, PdfName afRelationshipValue) { PdfStream stream = (PdfStream)new PdfStream(fileStore).makeIndirect(doc); PdfDictionary params = new PdfDictionary(); if (fileParameter != null) { params.mergeDifferent(fileParameter); } if (!params.containsKey(PdfName.ModDate)) { params.put(PdfName.ModDate, new PdfDate().getPdfObject()); } if (fileStore != null) { params.put(PdfName.Size, new PdfNumber(stream.getBytes().length)); } stream.put(PdfName.Params, params); return createEmbeddedFileSpec(doc, stream, description, fileDisplay, mimeType, afRelationshipValue); }
PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect);
PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect);
private PdfStream newContentStream(boolean before) { PdfObject contents = getPdfObject().get(PdfName.Contents); PdfArray array; if (contents instanceof PdfStream) { array = new PdfArray(); array.add(contents); put(PdfName.Contents, array); } else if (contents instanceof PdfArray) { array = (PdfArray) contents; } else { array = null; } PdfStream contentStream = (PdfStream) new PdfStream().makeIndirect(getDocument()); if (array != null) { if (before) { array.add(0, contentStream); } else { array.add(contentStream); } if (array.getIndirectReference() != null) { array.setModified(); } else { setModified(); } } else { put(PdfName.Contents, contentStream); } return contentStream; }
protected void drawPdfA2CheckAppearance(float width, float height, String onStateName, int checkType) { this.checkType = checkType; Rectangle rect = new Rectangle(0, 0, width, height); PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); xObjectOn.getResources(); drawBorder(canvasOn, xObjectOn, width, height); drawPdfACheckBox(canvasOn, width, height, true); xObjectOn.getPdfObject().getOutputStream().writeBytes(streamOn.getBytes()); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect); xObjectOff.getResources(); drawBorder(canvasOff, xObjectOff, width, height); xObjectOff.getPdfObject().getOutputStream().writeBytes(streamOff.getBytes()); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(onStateName), xObjectOn.getPdfObject()); normalAppearance.put(new PdfName("Off"), xObjectOff.getPdfObject()); PdfDictionary mk = new PdfDictionary(); mk.put(PdfName.CA, new PdfString(text)); PdfWidgetAnnotation widget = getWidgets().get(0); widget.put(PdfName.MK, mk); widget.setNormalAppearance(normalAppearance); }
PdfStream ps = new PdfStream(b); ps.setCompressionLevel(CompressionConstants.DEFAULT_COMPRESSION); ps.makeIndirect(document); crl.add(ps); crls.add(ps); PdfStream ps = new PdfStream(b); ps.setCompressionLevel(CompressionConstants.DEFAULT_COMPRESSION); ps.makeIndirect(document); cert.add(ps); certs.add(ps);
protected void drawPdfA2CheckAppearance(float width, float height, String onStateName, int checkType) { this.checkType = checkType; Rectangle rect = new Rectangle(0, 0, width, height); PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); xObjectOn.getResources(); drawBorder(canvasOn, xObjectOn, width, height); drawPdfACheckBox(canvasOn, width, height, true); xObjectOn.getPdfObject().getOutputStream().writeBytes(streamOn.getBytes()); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect); xObjectOff.getResources(); drawBorder(canvasOff, xObjectOff, width, height); xObjectOff.getPdfObject().getOutputStream().writeBytes(streamOff.getBytes()); PdfDictionary normalAppearance = new PdfDictionary(); normalAppearance.put(new PdfName(onStateName), xObjectOn.getPdfObject()); normalAppearance.put(new PdfName("Off"), xObjectOff.getPdfObject()); PdfDictionary mk = new PdfDictionary(); mk.put(PdfName.CA, new PdfString(text)); PdfWidgetAnnotation widget = getWidgets().get(0); widget.put(PdfName.MK, mk); widget.setNormalAppearance(normalAppearance); }
PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfResources resources = appearance.getResources(); PdfCanvas canvas = new PdfCanvas(stream, resources, getDocument());
Rectangle rect = new Rectangle(0, 0, width, height); PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect);
Rectangle rect = new Rectangle(0, 0, width, height); PdfStream streamOn = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOn = new PdfCanvas(streamOn, new PdfResources(), getDocument()); PdfFormXObject xObjectOn = new PdfFormXObject(rect); PdfStream streamOff = (PdfStream) new PdfStream().makeIndirect(getDocument()); PdfCanvas canvasOff = new PdfCanvas(streamOff, new PdfResources(), getDocument()); PdfFormXObject xObjectOff = new PdfFormXObject(rect);
PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); AppearanceResources resources = new AppearanceResources().addFontFromDefaultResources(fontName, font); PdfCanvas canvas = new PdfCanvas(stream, resources, getDocument());
PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument()); AppearanceResources resources = new AppearanceResources().addFontFromDefaultResources(fontName, font); PdfCanvas canvas = new PdfCanvas(stream, resources, getDocument());