C# iTextSharp (5.5) Checkbox nur sichtbar, wenn angeklickt

heulendoch

Lt. Junior Grade
Registriert
Feb. 2014
Beiträge
259
Hallo zusammen,

ich habe ein von mir erstelltes PDF aus Word, dem ich noch ein paar Textfelder und Checkboxen hinzufüge. Dazu habe ich eine Liste eines Objekts das Name, Position und Seite enthält. Die Textfelder sind mit diesem typischen leichten blau hinterlegt, auch wenn diese nicht aktiv sind. Bei den Checkboxen habe ich schon etliches probiert (alle PdfAnnotation.HIGHLIGHT_XXX), allerdings will diese Schattierung (am besten auch ein Rahmen) einfach nicht erscheinen. Erst wenn die Checkbox angeklickt ist, ist diese auch bläulich.

C#:
var NewPdf = new FileInfo(PdfYes2);

                    using (FileStream Stream = NewPdf.Open(FileMode.OpenOrCreate)) {
                        var Reader = new PdfReader(PdfYes);
                        var Stamper = new PdfStamper(Reader, Stream);
                        foreach (var FieldInfo in FieldInfos) {

                            if (FieldInfo.Name.StartsWith("check")) {

                                //var Field = new RadioCheckField(Stamper.Writer, FieldInfo.Position, FieldInfo.Name, "Yes");

                                var Field = PdfFormField.CreateCheckBox(Stamper.Writer);
                                //Field.BorderStyle = new PdfBorderDictionary(2f, PdfBorderDictionary.STYLE_SOLID);
                                //Field.Border = new PdfBorderArray(1, 1, 1);
                                //Field.MKBorderColor = CMYKColor.ORANGE;
                                //Field.Color = CMYKColor.RED;
                                //FieldInfo.Position.Border = 1;
                                //FieldInfo.Position.BorderWidth = 1;
                                //FieldInfo.Position.BorderColor = CMYKColor.RED;

                                // set a field w/some position and size
                                Field.SetWidget(FieldInfo.Position, PdfAnnotation.HIGHLIGHT_NONE);

                                //var Template = PdfTemplate.CreateTemplate(Stamper.Writer, 20, 20);
                                //Template.SetRGBColorFill(100, 100, 100);

                                //Field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", Template);
                                Field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);
                                Field.FieldName = FieldInfo.Name;

                               
                                // add the field here, the second param is the page you want it on
                                Stamper.AddAnnotation(Field, FieldInfo.Page);

                                Stamper.AcroFields.SetField(FieldInfo.Name, "Off");

                            }
                            else {
                                var Field = PdfFormField.CreateTextField(Stamper.Writer, false, false, 50);

                                // set a field w/some position and size
                                Field.SetWidget(FieldInfo.Position, PdfAnnotation.HIGHLIGHT_INVERT);

                                Field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);
                                Field.FieldName = FieldInfo.Name;

                                // add the field here, the second param is the page you want it on
                                Stamper.AddAnnotation(Field, FieldInfo.Page);
                            }
                        }

                        Stamper.Close();
                    }

Ich habe keine Ahnung was ich noch probieren soll.. nichts funktioniert..
 
Kannst du mal Beispielbilder einfügen was du genau meinst? Das wäre nett. Ich steige noch nicht ganz dahinter...oder es ist einfach gerade zu spät :D
 
  • Gefällt mir
Reaktionen: heulendoch
In dieser Tabelle sind Checkboxen, die sind aber erst sichtbar sobald man sie angeklickt hat. :D
1551950438462.png

Ich hätte aber gerne, dass die blaue Schattierung immer sichtbar ist
1551950471786.png

Also praktisch so wie sie es jetzt ist nachdem man sie wieder abgeklickt hat
1551950646663.png
 
Puh...was passiert wenn du die Xfa Form aus dem Dokument entfernst bei der Generierung? Mal testweise? Auch wenn das damit nicht viel zu tun haben sollte aber ich hatte damit schon einige Probleme mit iText.
Btw warum eigentlich nicht iText7? Lizenzprobleme? Ansonsten gibts das über Nuget.
 
Zurück
Oben