[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Luis Bernardo (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707441#comment-13707441
 ] 

Luis Bernardo commented on FOP-2273:


patch applied: http://svn.apache.org/viewvc?view=revision&revision=1502705

it follows from the PDF spec definition of miter limit as a cap on the ratio of 
the miter length and the line width that a value less than 1 makes little sense.

> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
> Attachments: Acrobat Reader.png, expected result.png, FOP_Test.pdf, 
> PDF-Rendering.png
>
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Luis Bernardo (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707115#comment-13707115
 ] 

Luis Bernardo commented on FOP-2273:


If you use an svg with a invalid miterlimit value batik supposedly (I assume 
this happens when the svg is processed by batik) fixes it and the PDF generated 
by FOP is correct (has M with operand 1).

> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
> Attachments: Acrobat Reader.png, expected result.png, FOP_Test.pdf, 
> PDF-Rendering.png
>
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Luis Bernardo (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707059#comment-13707059
 ] 

Luis Bernardo commented on FOP-2273:


I confirm the issue with Adobe Reader and I think the suggested fix is 
appropriate too.

> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
> Attachments: Acrobat Reader.png, expected result.png, FOP_Test.pdf, 
> PDF-Rendering.png
>
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Max Gilead (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707026#comment-13707026
 ] 

Max Gilead commented on FOP-2273:
-

As I mentioned in the previous comment: there should be two lines but Acrobat 
Reader shows only one. Do you see two diagonal lines in AR or only one?

Also, there is no error described above as I couldn't get it to display one 
with this simple example (the original PDF was generated using a 3rd party 
library) -- This is just a clarification as there is no error popup when 
opening the attached file yet the end result is the same -- the graphics 
rendering stops once Acrobat encounters a shape with a miter limit below 1.0


> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
> Attachments: FOP_Test.pdf, PDF-Rendering.png
>
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Luis Bernardo (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707022#comment-13707022
 ] 

Luis Bernardo commented on FOP-2273:


I opened the PDF you provided without problem with Adobe Reader 10.1.7 on a 
Mac. Can you provide an fo/svg file that shows the issue?

> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
> Attachments: FOP_Test.pdf
>
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-12 Thread Max Gilead (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707010#comment-13707010
 ] 

Max Gilead commented on FOP-2273:
-

There should be two lines but Acrobat Reader shows only one. There is no error 
described above as I couldn't get it to display one with this simple example 
(the original PDF was generated using a 3rd party library).

import org.apache.fop.svg.PDFDocumentGraphics2D;
import org.apache.pdfbox.pdfwriter.COSWriter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.xmlgraphics.java2d.GraphicContext;

import java.awt.BasicStroke;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class FopTest {

public static void main(String[] args) throws Exception {
final String[] content = new String[1];
PDFDocumentGraphics2D g = new PDFDocumentGraphics2D(false, new 
ByteArrayOutputStream(), 100, 100) {
@Override protected void closePage() {
content[0] = super.getString() + "Q\n";
super.closePage();
}
};
g.setGraphicContext(new GraphicContext());

g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_ROUND, 
BasicStroke.JOIN_ROUND, 1.0f));
g.drawLine(0, 100, 100, 0);
g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_ROUND, 
BasicStroke.JOIN_ROUND, 0.1f));
g.drawLine(0, 0, 100, 100);

g.finish();
g.dispose();

final PDDocument document = new PDDocument();
PDPage page = new PDPage(new PDRectangle(100, 100));
document.addPage(page);
PDPageContentStream writer = new PDPageContentStream(document, page);
writer.appendRawCommands(content[0].getBytes());
writer.close();

OutputStream out = new BufferedOutputStream(new 
FileOutputStream("FOP_Test.pdf"));
COSWriter coswriter = null;
coswriter = new COSWriter(out);
coswriter.write(document);
coswriter.close();

document.close();
out.close();
}

}


> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (FOP-2273) Stroke miter limit is not clamped when writing PDFs

2013-07-11 Thread Luis Bernardo (JIRA)

[ 
https://issues.apache.org/jira/browse/FOP-2273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13706321#comment-13706321
 ] 

Luis Bernardo commented on FOP-2273:


Thank you for the investigation. Can you provide a simple example?

> Stroke miter limit is not clamped when writing PDFs
> ---
>
> Key: FOP-2273
> URL: https://issues.apache.org/jira/browse/FOP-2273
> Project: Fop
>  Issue Type: Bug
>  Components: pdf
>Affects Versions: trunk
>Reporter: Max Gilead
>  Labels: easyfix
>
> org.apache.fop.svg.PDFGraphics2D line 1240 (as of SVN revision 148001 [1]) is:
> float ml = bs.getMiterLimit();
> but should be (or equivalent):
> float ml = Math.max(1.0f, bs.getMiterLimit());
> Acrobat Reader (on all platforms) refuses to load graphics data after 
> encountering miter limit < 1.0 and reports an error.
> I can't find a reference to the valid range in the PDF spec but Inkscape also 
> had a problem with values less than 1.0 [2] and SVG spec mandates values >= 
> 1.0 as well [3] so clamping the value to 1.0 or more seems like the right 
> thing to do.
> [1] 
> http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFGraphics2D.java?revision=1480018&view=markup
> [2] 
> http://webcache.googleusercontent.com/search?q=cache:RHSt5Wk7-uQJ:inkscape-forum.andreas-s.net/topic/71990+&cd=7&hl=en&ct=clnk&gl=uk&client=firefox-beta
> [3] http://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira