Hi, this is exactly the mistake I mentioned: you put one coordinate per array. I suspect you read only the first sentence I wrote. I've observed this effect with people sometimes, including with myself, sadly.

Your file didn't get through, that's why I wrote "upload".

Tilman

Am 07.03.2017 um 03:05 schrieb chitgoks:
Hi tilman. this is my code.

COSDictionary ddict = new COSDictionary();
ddict.setName(COSName.SUBTYPE, PDAnnotationMarkup.SUB_TYPE_INK);

COSArray newInklist = new COSArray();
for (DrawingPosition dp : getDrawingPositions()) {
    float[] drawPointXY = new float[2];
    drawPointXY[0] = dp.getX();
    drawPointXY[1] = dp.getY();
    COSArray newArray = new COSArray();
    newArray.setFloatArray(drawPointXY);
    newInklist.add(newArray);
}
ddict.setItem(COSName.INKLIST, newInklist);

PDAnnotationMarkup inkAnnot = new PDAnnotationMarkup(ddict);
inkAnnot.setRectangle(location);

PDBorderStyleDictionary drawBorderDict = new PDBorderStyleDictionary();
drawBorderDict.setWidth(2);
drawBorderDict.setStyle(PDBorderStyleDictionary.STYLE_SOLID);
inkAnnot.setBorderStyle(drawBorderDict);

The array of x,y points looks like this

COSArray{[COSArray{[COSFloat{462.9}, COSFloat{549.6}]}, COSArray{[COSFloat{462.9}, COSFloat{550.8}]}, COSArray{[COSFloat{462.30002}, COSFloat{552.6}]}, COSArray{[COSFloat{460.5}, COSFloat{554.4}]}, COSArray{[COSFloat{459.30002}, COSFloat{556.2}]}, COSArray{[COSFloat{455.69998}, COSFloat{559.8}]}, COSArray{[COSFloat{450.9}, COSFloat{564.0}]}, COSArray{[COSFloat{443.69998}, COSFloat{570.0}]}, COSArray{[COSFloat{431.1}, COSFloat{576.6}]}, COSArray{[COSFloat{420.9}, COSFloat{583.8}]}, COSArray{[COSFloat{409.5}, COSFloat{590.4}]}, COSArray{[COSFloat{395.1}, COSFloat{595.8}]}, COSArray{[COSFloat{383.1}, COSFloat{600.6}]}, COSArray{[COSFloat{370.5}, COSFloat{603.6}]}, COSArray{[COSFloat{357.9}, COSFloat{607.2}]}, COSArray{[COSFloat{347.1}, COSFloat{610.2}]}, COSArray{[COSFloat{338.7}, COSFloat{610.2}]}, COSArray{[COSFloat{330.9}, COSFloat{610.2}]}, COSArray{[COSFloat{323.7}, COSFloat{609.0}]}, COSArray{[COSFloat{318.9}, COSFloat{606.6}]}, COSArray{[COSFloat{314.1}, COSFloat{603.6}]}, COSArray{[COSFloat{307.5}, COSFloat{598.2}]}, COSArray{[COSFloat{300.9}, COSFloat{590.4}]}, COSArray{[COSFloat{296.1}, COSFloat{583.8}]}, COSArray{[COSFloat{291.3}, COSFloat{574.2}]}, COSArray{[COSFloat{287.1}, COSFloat{567.0}]}, COSArray{[COSFloat{282.3}, COSFloat{558.0}]}, COSArray{[COSFloat{278.1}, COSFloat{549.0}]}, COSArray{[COSFloat{273.3}, COSFloat{540.0}]}, COSArray{[COSFloat{269.1}, COSFloat{532.8}]}, COSArray{[COSFloat{264.3}, COSFloat{526.8}]}, COSArray{[COSFloat{250.5}, COSFloat{512.4}]}, COSArray{[COSFloat{246.3}, COSFloat{510.0}]}, COSArray{[COSFloat{240.90001}, COSFloat{507.6}]}, COSArray{[COSFloat{234.3}, COSFloat{504.6}]}, COSArray{[COSFloat{227.7}, COSFloat{502.8}]}, COSArray{[COSFloat{221.09999}, COSFloat{501.0}]}, COSArray{[COSFloat{214.5}, COSFloat{500.4}]}, COSArray{[COSFloat{208.5}, COSFloat{500.4}]}, COSArray{[COSFloat{200.09999}, COSFloat{500.4}]}, COSArray{[COSFloat{194.7}, COSFloat{501.0}]}, COSArray{[COSFloat{188.7}, COSFloat{501.6}]}, COSArray{[COSFloat{184.5}, COSFloat{503.4}]}, COSArray{[COSFloat{179.7}, COSFloat{504.6}]}, COSArray{[COSFloat{176.7}, COSFloat{506.4}]}, COSArray{[COSFloat{173.7}, COSFloat{507.6}]}, COSArray{[COSFloat{171.9}, COSFloat{508.8}]}, COSArray{[COSFloat{170.1}, COSFloat{510.0}]}, COSArray{[COSFloat{168.9}, COSFloat{511.8}]}, COSArray{[COSFloat{168.9}, COSFloat{512.4}]}, COSArray{[COSFloat{168.9}, COSFloat{513.0}]}]}

Attached is the result


Website/Java Games: http://www.chitgoks.com
My Blogs:
http://tech.chitgoks.com
http://wuhtevah.chitgoks.com
http://disneyusa.blogspot.com

On Tue, Mar 7, 2017 at 1:25 AM, Tilman Hausherr <[email protected] <mailto:[email protected]>> wrote:

    Am 06.03.2017 um 10:14 schrieb chitgoks:

        i got it to work. my first mistake was that the subtype is Ink
        not InkList.

        it shows the drawing now. however, the issue is that the
        points are
        scattered and not interconnected. I expected pdfbox to link
        the points so
        they would be displayed as one continuous drawing.

        any idea on what might be lacking? perhaps a COSName?



    I can't comment much without looking at your PDF (upload it
    somewhere). When I wrote "an array of arrays", I mean this from
    the PDF specification:

    "An array of n arrays, each representing a stroked path. Each
    array shall be a series of alternating horizontal and vertical
    coordinates in default user space, specifying points along the
    path. When drawn, the points shall be connected by straight lines
    or curves in an implementation-dependent way."

    Maybe you put one coordinate pair in one array, instead of all
    points of a line in one array?

    "Array of arrays" means that if you have only one path with 8
    points, then you have one array with one element, this element is
    an array with 16 numbers. To see how an inklist is, open the file
    from PDFBOX-2583 in PDFDebugger.

    Tilman



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [email protected]
    <mailto:[email protected]>
    For additional commands, e-mail: [email protected]
    <mailto:[email protected]>




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to