heulendoch
Lt. Junior Grade
- Registriert
- Feb. 2014
- Beiträge
- 260
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.
Ich habe keine Ahnung was ich noch probieren soll.. nichts funktioniert..
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..