[ 
https://issues.apache.org/jira/browse/PDFBOX-1709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Hewson updated PDFBOX-1709:
--------------------------------

    Description: 
PDFStreamEngine#processEncodedText gives x-coord short by width of previous 
text, for next text at same y-coord.

---

Use this PostScript to create PDFs that demonstrate x-coordinate issue with 
processEncodedText().

%!
/Helvetica findfont 20 scalefont setfont

100 72 moveto
(Hello) show

% CASES
%    Uncomment any one of the following, make a PDF (with ghostscript ps2pdf, 
or acrobat distiller),
%    then process the PDF with java implementation of PDFBox PDFTextStripper.
%    listing text and x,y positions obtained by overriding the 
processEncodedText() method.
%    For example, the x-coord. of a text item may be printed in that method with
%       System.out.format("%.2f\n", this.getTextMatrix().getXPosition());

% % 0. Works to convince processEncodedText that string 'Hello world.' was at 
100,72.  This is good.
%
% ( world.) show

% % 1. Does not trick processEncodedText into thinking 'Hello' followed by ' ' 
+ 'world.'
% %    Instead,
% %    x-coord. of 'world.' reported as being actual position minus width of 
'Hello', plus width of ' '
% %    which is x=105.56 in this case.
% 
%( ) stringwidth pop 0 rmoveto
%(world.) show

% % 2. Positioning 'world.' within about 500 points from 'Hello', at same 
vertical position causes
% %    processEncodedText to give
% %    x-coord. of 'world.' as actual position minus width of 'Hello'
% %    which is x=200 in this case.
%
%100 0 rmoveto
%(world.) show


showpage


  was:
processEncodedText gives x-coord short by width of previous text, for next text 
at same y-coord.

---

Use this PostScript to create PDFs that demonstrate x-coordinate issue with 
processEncodedText().

%!
/Helvetica findfont 20 scalefont setfont

100 72 moveto
(Hello) show

% CASES
%    Uncomment any one of the following, make a PDF (with ghostscript ps2pdf, 
or acrobat distiller),
%    then process the PDF with java implementation of PDFBox PDFTextStripper.
%    listing text and x,y positions obtained by overriding the 
processEncodedText() method.
%    For example, the x-coord. of a text item may be printed in that method with
%       System.out.format("%.2f\n", this.getTextMatrix().getXPosition());

% % 0. Works to convince processEncodedText that string 'Hello world.' was at 
100,72.  This is good.
%
% ( world.) show

% % 1. Does not trick processEncodedText into thinking 'Hello' followed by ' ' 
+ 'world.'
% %    Instead,
% %    x-coord. of 'world.' reported as being actual position minus width of 
'Hello', plus width of ' '
% %    which is x=105.56 in this case.
% 
%( ) stringwidth pop 0 rmoveto
%(world.) show

% % 2. Positioning 'world.' within about 500 points from 'Hello', at same 
vertical position causes
% %    processEncodedText to give
% %    x-coord. of 'world.' as actual position minus width of 'Hello'
% %    which is x=200 in this case.
%
%100 0 rmoveto
%(world.) show


showpage



> processEncodedText gives wrong coordinates
> ------------------------------------------
>
>                 Key: PDFBOX-1709
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1709
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 1.8.2
>         Environment: Windows 7 sp1, Javac 1.6.0_30, Java 1.7.0_17
>            Reporter: Robert Simms
>              Labels: test
>         Attachments: PDFBOX1709-0.pdf, PDFBOX1709-1.pdf, PDFBOX1709-2.pdf
>
>
> PDFStreamEngine#processEncodedText gives x-coord short by width of previous 
> text, for next text at same y-coord.
> ---
> Use this PostScript to create PDFs that demonstrate x-coordinate issue with 
> processEncodedText().
> %!
> /Helvetica findfont 20 scalefont setfont
> 100 72 moveto
> (Hello) show
> % CASES
> %    Uncomment any one of the following, make a PDF (with ghostscript ps2pdf, 
> or acrobat distiller),
> %    then process the PDF with java implementation of PDFBox PDFTextStripper.
> %    listing text and x,y positions obtained by overriding the 
> processEncodedText() method.
> %    For example, the x-coord. of a text item may be printed in that method 
> with
> %       System.out.format("%.2f\n", this.getTextMatrix().getXPosition());
> % % 0. Works to convince processEncodedText that string 'Hello world.' was at 
> 100,72.  This is good.
> %
> % ( world.) show
> % % 1. Does not trick processEncodedText into thinking 'Hello' followed by ' 
> ' + 'world.'
> % %    Instead,
> % %    x-coord. of 'world.' reported as being actual position minus width of 
> 'Hello', plus width of ' '
> % %    which is x=105.56 in this case.
> % 
> %( ) stringwidth pop 0 rmoveto
> %(world.) show
> % % 2. Positioning 'world.' within about 500 points from 'Hello', at same 
> vertical position causes
> % %    processEncodedText to give
> % %    x-coord. of 'world.' as actual position minus width of 'Hello'
> % %    which is x=200 in this case.
> %
> %100 0 rmoveto
> %(world.) show
> showpage



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to