Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingContext.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingContext.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingContext.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingContext.java Thu Feb 19 18:04:18 2009 @@ -34,6 +34,11 @@ private PDFContentGenerator generator; private FontInfo fontInfo; private PDFPage page; + /** Temp. val. for accessibility, used in PDFImageHandlerRenderedImage */ + private String structElemType = ""; + + /** Temp. val. for accessibility, used in PDFImageHandlerRenderedImage */ + private int mcid = -1; /** * Main constructor. @@ -79,4 +84,35 @@ return this.fontInfo; } + /** + * Used for accessibility, used in PDFPainter.drawImage + * @param value to be stored + */ + public void setMCID(int value) { + mcid = value; + } + + /** + * Used for accessibility + * @return mcid + */ + public int getSequenceNum() { + return mcid; + } + + /** + * Used for accessibility + * @param s the type of the structure element + */ + public void setStructElemType(String s) { + structElemType = s; + } + + /** + * Used for accessibility + * @return the type of the structure element + */ + public String getStructElemType() { + return structElemType; + } }
Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java Thu Feb 19 18:04:18 2009 @@ -52,6 +52,8 @@ import org.apache.fop.pdf.PDFNumsArray; import org.apache.fop.pdf.PDFOutputIntent; import org.apache.fop.pdf.PDFPageLabels; +import org.apache.fop.pdf.PDFStructElem; +import org.apache.fop.pdf.PDFStructTreeRoot; import org.apache.fop.pdf.PDFXMode; import org.apache.fop.util.ColorProfileUtil; @@ -75,6 +77,9 @@ /** the PDF/X mode (Default: disabled) */ protected PDFXMode pdfXMode = PDFXMode.DISABLED; + /** the accessibility mode (Default: false=disabled) */ + protected boolean accessibility = false; + /** the (optional) encryption parameters */ protected PDFEncryptionParams encryptionParams; @@ -169,6 +174,12 @@ if (s != null) { this.outputProfileURI = s; } + // used for accessibility + setting = userAgent.getRendererOptions().get(ACCESSIBLITY); + if (setting != null) { + this.accessibility = booleanValueOf(setting); + } + setting = userAgent.getRendererOptions().get(KEY_DISABLE_SRGB_COLORSPACE); if (setting != null) { this.disableSRGBColorSpace = booleanValueOf(setting); @@ -384,6 +395,16 @@ log.debug("PDF/A is active. Conformance Level: " + pdfAMode); addPDFA1OutputIntent(); } + if (this.accessibility) { + this.pdfDoc.getRoot().makeTagged(); + log.info("Accessibility is enabled"); + PDFStructTreeRoot structTreeRoot = this.pdfDoc.getFactory().makeStructTreeRoot(); + this.pdfDoc.getRoot().setStructTreeRoot(structTreeRoot); + PDFStructElem structElemDocument = new PDFStructElem("root", structTreeRoot); + this.pdfDoc.assignObjectNumber(structElemDocument); + this.pdfDoc.addTrailerObject(structElemDocument); + structTreeRoot.addKid(structElemDocument); + } return this.pdfDoc; } Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSPainter.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSPainter.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSPainter.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSPainter.java Thu Feb 19 18:04:18 2009 @@ -176,7 +176,7 @@ } /** {...@inheritdoc} */ - public void drawImage(String uri, Rectangle rect) throws IFException { + public void drawImage(String uri, Rectangle rect, String ptr) throws IFException { try { endTextObject(); } catch (IOException ioe) { @@ -186,7 +186,7 @@ } /** {...@inheritdoc} */ - public void drawImage(Document doc, Rectangle rect) throws IFException { + public void drawImage(Document doc, Rectangle rect, String ptr) throws IFException { try { endTextObject(); } catch (IOException ioe) { @@ -338,7 +338,7 @@ /** {...@inheritdoc} */ public void drawText(int x, int y, int letterSpacing, int wordSpacing, - int[] dx, String text) throws IFException { + int[] dx, String text, String ptr) throws IFException { try { //Note: dy is currently ignored PSGenerator generator = getGenerator(); Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSRenderer.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSRenderer.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSRenderer.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/ps/PSRenderer.java Thu Feb 19 18:04:18 2009 @@ -345,7 +345,7 @@ } /** {...@inheritdoc} */ - protected void drawImage(String uri, Rectangle2D pos, Map foreignAttributes) { + protected void drawImage(String uri, Rectangle2D pos, Map foreignAttributes, String ptr) { endTextObject(); int x = currentIPPosition + (int)Math.round(pos.getX()); int y = currentBPPosition + (int)Math.round(pos.getY()); @@ -1233,7 +1233,7 @@ * {...@inheritdoc} */ public void renderImage(Image image, Rectangle2D pos) { - drawImage(image.getURL(), pos, image.getForeignAttributes()); + drawImage(image.getURL(), pos, image.getForeignAttributes(), ""); } /** Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/txt/TXTRenderer.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/txt/TXTRenderer.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/txt/TXTRenderer.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/render/txt/TXTRenderer.java Thu Feb 19 18:04:18 2009 @@ -443,7 +443,7 @@ } /** {...@inheritdoc} */ - protected void drawImage(String url, Rectangle2D pos, Map foreignAttributes) { + protected void drawImage(String url, Rectangle2D pos, Map foreignAttributes, String ptr) { //No images are painted here } Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/util/DOM2SAX.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/util/DOM2SAX.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/util/DOM2SAX.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/java/org/apache/fop/util/DOM2SAX.java Thu Feb 19 18:04:18 2009 @@ -77,6 +77,15 @@ contentHandler.endDocument(); } } + + /** + * Writes the given fragment using the given ContentHandler. + * @param node DOM node + * @throws SAXException In case of a problem while writing XML + */ + public void writeFragment(Node node) throws SAXException { + writeNode(node); + } /** * Begin the scope of namespace prefix. Forward the event to the SAX handler Modified: xmlgraphics/fop/branches/Temp_Accessibility/src/sandbox/org/apache/fop/render/svg/SVGPainter.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/src/sandbox/org/apache/fop/render/svg/SVGPainter.java?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/src/sandbox/org/apache/fop/render/svg/SVGPainter.java (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/src/sandbox/org/apache/fop/render/svg/SVGPainter.java Thu Feb 19 18:04:18 2009 @@ -193,7 +193,7 @@ } /** {...@inheritdoc} */ - public void drawImage(String uri, Rectangle rect) throws IFException { + public void drawImage(String uri, Rectangle rect, String ptr) throws IFException { try { establish(MODE_NORMAL); @@ -243,7 +243,7 @@ } /** {...@inheritdoc} */ - public void drawImage(Document doc, Rectangle rect) throws IFException { + public void drawImage(Document doc, Rectangle rect, String ptr) throws IFException { try { establish(MODE_NORMAL); @@ -325,8 +325,10 @@ } /** {...@inheritdoc} */ - public void drawText(int x, int y, int letterSpacing, int wordSpacing, int[] dx, String text) - throws IFException { + + public void drawText(int x, int y, int letterSpacing, int wordSpacing, int[] dx, + String text, String ptr) throws IFException { + //Note: ptr is ignored as it is only needed for accessibility try { establish(MODE_TEXT); AttributesImpl atts = new AttributesImpl(); Modified: xmlgraphics/fop/branches/Temp_Accessibility/status.xml URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_Accessibility/status.xml?rev=745949&r1=745948&r2=745949&view=diff ============================================================================== --- xmlgraphics/fop/branches/Temp_Accessibility/status.xml (original) +++ xmlgraphics/fop/branches/Temp_Accessibility/status.xml Thu Feb 19 18:04:18 2009 @@ -58,6 +58,9 @@ documents. Example: the fix of marks layering will be such a case when it's done. --> <release version="FOP Trunk" date="TBD"> + <action context="Renderers" dev="JM" type="add" fixes-bug="46705" due-to="Jost Klopfstein"> + Added basic accessibility and Tagged PDF support. + </action> <action context="Fonts" dev="JM" type="fix" fixes-bug="46686" due-to="Alok Singh"> Use temporary directory for the font cache if the user home directory is not write-accessible. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
