I guess I just don't understand how to add the font resource at the right
level...

On Mon, Nov 21, 2016 at 11:34 AM Tilman Hausherr <[email protected]>
wrote:

> Am 21.11.2016 um 20:19 schrieb Mikhail Slyusarev:
> > Here's the PDF. I'm not sure where PDPageContentStream comes in to
> > play though.
>
> Like this:
>
> PDPageContentStream cs = new PDPageContentStream(renderer.document,
> appearanceStream);
>
>
> but try the hard way first, as you almost got it to work.
>
> re your file, I looked at
> Root/AcroForm/Fields/[8]/AP/N/Yes
>
> That one misses the resource directory with the font entry for ZaDB -
> although maybe it works because ZaDb is in the default resources.
>
> Another thing missing is the "Off" entry.
>
> Tilman
>
> >
> > On Mon, Nov 21, 2016 at 11:02 AM Tilman Hausherr
> > <[email protected] <mailto:[email protected]>> wrote:
> >
> >     Am 21.11.2016 um 19:31 schrieb Mikhail Slyusarev:
> >     > I've compared it to the file you mentioned. It seems like that
> >     is what's
> >     > happening. It's not entirely clear to me where to embed the
> resource
> >     > though. I think the way I'm making the appearance stream is kind
> >     of a
> >     > mistake.
> >
> >     I can't comment without having seen the PDF.
> >
> >     I forgot to mention, the font must also be in the resources of the
> >     appearance stream, of course, as seen in
> >
> >     Root/Pages/Kids/[5]/Annots/[14]/AP/N/Yes/Resources/Font/ZaDb
> >
> >     > Is there a way to construct the appearance without having it all
> >     > be PDF syntax strings?
> >
> >     There's a PDPageContentStream constructor that takes appearance
> >     streams
> >     as parameter so that it becomes a bit easier. Not sure if this
> >     works for
> >     checkboxes.
> >
> >     Tilman
> >
> >     >
> >     > On Mon, Nov 21, 2016 at 9:35 AM Tilman Hausherr
> >     <[email protected] <mailto:[email protected]>>
> >     > wrote:
> >     >
> >     >> Could you upload your result file somewhere? I could compare it
> >     with a
> >     >> file that has a checkbox.
> >     >>
> >     >> What may be missing is the font definition in
> >     Root/AcroForm/DR/Font/ZaDb
> >     >>
> >     >> To see what I mean, open this file in PDFDebugger
> >     >> http://www.ghostscript.com/doc/examples/annots.pdf
> >     >>
> >     >> Tilman
> >     >>
> >     >> Am 21.11.2016 um 15:32 schrieb Mikhail Slyusarev:
> >     >>> How is this done? I'm able to create the field... that part's
> >     pretty
> >     >>> straight forward. However, the field doesn't have an
> >     appearance, and
> >     >>> constructAppearance isn't implemented for it.
> >     >>>
> >     >>> I'm doing this in jRuby, so excuse the syntax, but here's what
> >     I have so
> >     >>> far for creating an appearance.
> >     >>>
> >     >>> field = PDCheckBox.new(form)
> >     >>>
> >     >>> field.partial_name = rf.id <http://rf.id>
> >     >>>
> >     >>> form.fields.add(field)
> >     >>>
> >     >>> rect = PDRectangle.new(
> >     >>>    rf.x * box.width,
> >     >>>    box.height - (rf.y * box.height) - (rf.height * box.height),
> >     >>>    rf.width * box.width,
> >     >>>    rf.height * box.height
> >     >>> )
> >     >>>
> >     >>> appearance_stream = PDAppearanceStream.new(COSStream.new)
> >     >>>
> >     >>> cs = appearance_stream.content_stream
> >     >>>
> >     >>> out = cs.create_output_stream
> >     >>> out.write("q\n1 1 9.3879 9.4828 re\nW\nn\nBT\n/ZaDb 7.7614
> >     Tf\n2.4109
> >     >>> 3.1142 Td\n7.4742 TL\n(x) Tj\nET\nQ\n".to_java_bytes)
> >     >>> out.close
> >     >>>
> >     >>> ad = COSDictionary.new
> >     >>> ad.set_item(COSName::YES, appearance_stream)
> >     >>>
> >     >>> appearance = PDAppearanceDictionary.new(COSDictionary.new)
> >     >>> appearance.normal_appearance = PDAppearanceEntry.new(ad)
> >     >>>
> >     >>> widget = field.widgets.get(0)
> >     >>> widget.rectangle = rect
> >     >>> widget.page = page
> >     >>> widget.printed = true
> >     >>> widget.appearance = appearance
> >     >>>
> >     >>> page.annotations.add(widget)
> >     >>>
> >     >>>
> >     >>> The magic string above is pulled from analyzing an existing
> >     checkbox
> >     >>> field on a pdf. How do I get the appearance correct (with a check
> >     >>> symbol)?
> >     >>>
> >     >>> Thanks,
> >     >>> Mikhail
> >     >>>
> >     >>
> >     >>
> >     ---------------------------------------------------------------------
> >     >> 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]
> >     <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