internal override void SetObject(PdfItem value) { PdfObject obj = (PdfObject)value; this.tbxObjectID.Text = PdfInternals.GetObjectID(obj).ToString(); this.txtType.Text = obj.GetType().Name; this.lvKeys.Items.Clear(); ListViewItem item = new ListViewItem( new string[3]{ExplorerProcess.GetTypeName(obj), value.ToString(), value.GetType().Name}); this.lvKeys.Items.Add(item); }
internal override void WriteObject(PdfWriter writer) { // HACK: temporarily flip media box if Landscape PdfRectangle mediaBox = MediaBox; // TODO: Take /Rotate into account if (_orientation == PageOrientation.Landscape) { MediaBox = new PdfRectangle(mediaBox.X1, mediaBox.Y1, mediaBox.Y2, mediaBox.X2); } #if true // Add transparency group to prevent rendering problems of Adobe viewer. // Update (PDFsharp 1.50 beta 3): Add transparency group only of ColorMode is defined. // Rgb is the default for the ColorMode, but if user sets it to Undefined then // we respect this and skip the transparency group. TransparencyUsed = true; // TODO: check XObjects if (TransparencyUsed && !Elements.ContainsKey(Keys.Group) && _document.Options.ColorMode != PdfColorMode.Undefined) { PdfDictionary group = new PdfDictionary(); _elements["/Group"] = group; if (_document.Options.ColorMode != PdfColorMode.Cmyk) { group.Elements.SetName("/CS", "/DeviceRGB"); } else { group.Elements.SetName("/CS", "/DeviceCMYK"); } group.Elements.SetName("/S", "/Transparency"); //False is default: group.Elements["/I"] = new PdfBoolean(false); //False is default: group.Elements["/K"] = new PdfBoolean(false); } #endif #if DEBUG_ PdfItem item = Elements["/MediaBox"]; if (item != null) { item.GetType(); } #endif base.WriteObject(writer); if (_orientation == PageOrientation.Landscape) { MediaBox = mediaBox; } }
internal override void WriteObject(PdfWriter writer) { // HACK: temporarily flip media box if Landscape PdfRectangle mediaBox = MediaBox; // TODO: Take /Rotate into account if (orientation == PageOrientation.Landscape) { MediaBox = new PdfRectangle(mediaBox.X1, mediaBox.Y1, mediaBox.Y2, mediaBox.X2); } //#warning THHO4STLA: warum nicht new PdfRectangle(mediaBox.Y1, mediaBox.X1, mediaBox.Y2, mediaBox.X2)? - siehe auch Orientation //#warning THHO4STLA: CropBox, BleedBox etc. auch drehen? #if true // Add transparency group to prevent rendering problems of Adobe viewer this.transparencyUsed = true; // TODO: check XObjects if (this.transparencyUsed && !Elements.ContainsKey(Keys.Group) && (writer.Options & PdfWriterOptions.PdfACompat) != PdfWriterOptions.PdfACompat) { PdfDictionary group = new PdfDictionary(); this.elements["/Group"] = group; if (this.document.Options.ColorMode != PdfColorMode.Cmyk) { group.Elements.SetName("/CS", "/DeviceRGB"); } else { group.Elements.SetName("/CS", "/DeviceCMYK"); } group.Elements.SetName("/S", "/Transparency"); group.Elements["/I"] = new PdfBoolean(false); group.Elements["/K"] = new PdfBoolean(false); } #endif #if DEBUG_ PdfItem item = Elements["/MediaBox"]; if (item != null) { item.GetType(); } #endif base.WriteObject(writer); if (this.orientation == PageOrientation.Landscape) { MediaBox = mediaBox; } }
static void DebugCheckNonObjects(PdfItem item) { if (item is PdfName) return; if (item is PdfBoolean) return; if (item is PdfInteger) return; if (item is PdfNumber) return; if (item is PdfString) return; if (item is PdfRectangle) return; if (item is PdfNull) return; Type type = item.GetType(); Debug.Assert(type != null, string.Format("CheckNonObjects: Add {0} to the list.", type.Name)); }