Browse Source

GraphicsContainer can be used with printer and pdf

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
06a04c13ae
  1. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs
  2. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/BaseExportColumn.cs
  3. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs
  4. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs
  5. 48
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportText.cs
  6. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs
  7. 23
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PdfRenderer.cs
  8. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/PdfHelper.cs

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs

@ -34,7 +34,6 @@ namespace ICSharpCode.Reports.Addin @@ -34,7 +34,6 @@ namespace ICSharpCode.Reports.Addin
base.BackColor = Color.White;
this.contentAlignment = ContentAlignment.TopLeft;
TypeDescriptor.AddProvider(new TextItemTypeProvider(), typeof(BaseTextItem));
System.Console.WriteLine (this.Font.ToString());
}

10
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/BaseExportColumn.cs

@ -15,11 +15,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -15,11 +15,6 @@ namespace ICSharpCode.Reports.Core.Exporter
public class BaseExportColumn
{
// private IBaseStyleDecorator styleDecorator;
// private bool isContainer;
// private ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter;
// private PdfWriter pdfWriter;
#region Constructors
public BaseExportColumn()
@ -37,7 +32,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -37,7 +32,6 @@ namespace ICSharpCode.Reports.Core.Exporter
#endregion
#region draw item
public virtual void DrawItem (Graphics graphics)
@ -163,9 +157,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -163,9 +157,9 @@ namespace ICSharpCode.Reports.Core.Exporter
public bool IsContainer {get; protected set;}
public ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter PdfUnitConverter {get;private set;}
public ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter PdfUnitConverter {get;protected set;}
public PdfWriter PdfWriter {get;private set;}
public PdfWriter PdfWriter {get;protected set;}
}
}

10
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs

@ -37,12 +37,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -37,12 +37,22 @@ namespace ICSharpCode.Reports.Core.Exporter
}
base.DrawItem(graphics);
base.Decorate(graphics);
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items)
{
baseExportColumn.DrawItem(graphics);
}
}
public override void DrawItem(PdfWriter pdfWriter, ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter)
{
base.DrawItem(pdfWriter, converter);
base.Decorate();
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items)
{
baseExportColumn.DrawItem(pdfWriter,converter);
}
}
#endregion

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs

@ -15,7 +15,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -15,7 +15,6 @@ namespace ICSharpCode.Reports.Core.Exporter
{
public class ExportGraphicContainer :ExportContainer
{
//ExporterCollection items;
public ExportGraphicContainer (IBaseStyleDecorator itemStyle,bool isContainer):base(itemStyle as BaseStyleDecorator)
{
@ -29,7 +28,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -29,7 +28,8 @@ namespace ICSharpCode.Reports.Core.Exporter
if (lineDecorator != null) {
GraphicsLineDrawer (graphics);
}
else {
else
{
IGraphicStyleDecorator style = base.StyleDecorator as GraphicStyleDecorator;
if (style != null) {
base.FillShape(graphics,style.Shape);
@ -47,6 +47,24 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -47,6 +47,24 @@ namespace ICSharpCode.Reports.Core.Exporter
}
public override void DrawItem(PdfWriter pdfWriter, ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter)
{
base.PdfWriter = pdfWriter;
base.PdfUnitConverter = converter;
IGraphicStyleDecorator style = base.StyleDecorator as GraphicStyleDecorator;
style.Shape.DrawShape(pdfWriter.DirectContent,
new BaseLine (style.ForeColor,style.DashStyle,style.Thickness),
style,
ConvertToPdfRectangle());
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items)
{
baseExportColumn.DrawItem(pdfWriter,converter);
}
}
private void GraphicsLineDrawer (Graphics graphics)
{
LineDecorator lineStyle = base.StyleDecorator as LineDecorator;

48
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportText.cs

@ -39,30 +39,12 @@ namespace ICSharpCode.Reports.Core.Exporter { @@ -39,30 +39,12 @@ namespace ICSharpCode.Reports.Core.Exporter {
throw new ArgumentNullException("converter");
}
base.DrawItem(pdfWriter,converter);
iTextSharp.text.Font font = null;
if (this.StyleDecorator.Font.Unit == GraphicsUnit.Point) {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name,
BaseFont.IDENTITY_H,
this.StyleDecorator.Font.Size,
(int)this.StyleDecorator.Font.Style,
this.StyleDecorator.PdfForeColor);
} else {
font = FontFactory.GetFont(this.StyleDecorator.Font.FontFamily.Name,
BaseFont.IDENTITY_H,
UnitConverter.FromPixel(this.StyleDecorator.Font.Size).Point,
(int)this.StyleDecorator.Font.Style,
this.StyleDecorator.PdfForeColor);
}
base.Decorate();
PdfContentByte contentByte = base.PdfWriter.DirectContent;
iTextSharp.text.Font font = CreateFontFromFactory(this.StyleDecorator);
CalculatePdfFormat pdfFormat = new CalculatePdfFormat(this.StyleDecorator,font);
ColumnText columnText = new ColumnText(contentByte);
@ -83,6 +65,30 @@ namespace ICSharpCode.Reports.Core.Exporter { @@ -83,6 +65,30 @@ namespace ICSharpCode.Reports.Core.Exporter {
columnText.Go();
}
private static iTextSharp.text.Font CreateFontFromFactory(TextStyleDecorator styleDecorator)
{
iTextSharp.text.Font font = null;
if (styleDecorator.Font.Unit == GraphicsUnit.Point) {
font = FontFactory.GetFont(styleDecorator.Font.FontFamily.Name,
BaseFont.IDENTITY_H,
styleDecorator.Font.Size,
(int)styleDecorator.Font.Style,
styleDecorator.PdfForeColor);
} else {
font = FontFactory.GetFont(styleDecorator.Font.FontFamily.Name,
BaseFont.IDENTITY_H,
UnitConverter.FromPixel(styleDecorator.Font.Size).Point,
(int)styleDecorator.Font.Style,
styleDecorator.PdfForeColor);
}
return font;
}
public override void DrawItem(Graphics graphics)
{

12
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs

@ -27,18 +27,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -27,18 +27,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
protected static void DrawItems (Graphics graphics,ExporterCollection items)
{
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items) {
if (baseExportColumn != null) {
ExportContainer container = baseExportColumn as ExportContainer;
if (container == null) {
baseExportColumn.DrawItem(graphics);
} else {
container.DrawItem(graphics);
DrawItems(graphics,container.Items);
}
}
baseExportColumn.DrawItem(graphics);
}
}

23
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PdfRenderer.cs

@ -101,17 +101,15 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -101,17 +101,15 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
private void DrawPage (ExporterCollection items)
{
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items) {
if (baseExportColumn != null) {
IExportContainer container = baseExportColumn as ExportContainer;
if (container == null) {
baseExportColumn.DrawItem(this.pdfWriter,this.pdfUnitConverter);
} else {
container.DrawItem(this.pdfWriter,this.pdfUnitConverter);
this.DrawPage(container.Items);
}
}
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items)
{
baseExportColumn.DrawItem(this.pdfWriter,this.pdfUnitConverter);
// IExportContainer container = baseExportColumn as ExportContainer;
// if (container == null) {
// baseExportColumn.DrawItem(this.pdfWriter,this.pdfUnitConverter);
// } else {
// container.DrawItem(this.pdfWriter,this.pdfUnitConverter);
// }
}
}
@ -157,7 +155,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -157,7 +155,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
}
public class PdfUnitConverter {
public class PdfUnitConverter
{
Rectangle pageSize;
float lowerLeftX;
float lowerleftY;

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/PdfHelper.cs

@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using iTextSharp.text;
namespace ICSharpCode.Reports.Core.Globals
{
@ -14,6 +13,7 @@ namespace ICSharpCode.Reports.Core.Globals @@ -14,6 +13,7 @@ namespace ICSharpCode.Reports.Core.Globals
{
ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter;
public ScreenRectToPdfRectConverter(ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter)
{
if (converter == null) {
@ -57,5 +57,6 @@ namespace ICSharpCode.Reports.Core.Globals @@ -57,5 +57,6 @@ namespace ICSharpCode.Reports.Core.Globals
float ry = (float)ly + UnitConverter.FromPixel(r.Height).Point;
return new iTextSharp.text.Rectangle(lx,ly,rx,ry);
}
}
}

Loading…
Cancel
Save