希望有人在那里可能有同样的问题,并找到了解决方案.
我正在尝试将表中的某些行设置为要分组,以便如果一行落入下一页,则其他行也将转到该下一页.
我正在使用PdfSharp和Migradoc将行KeepWith属性设置为我想要保持附加的行的索引.
IE:
var row = myTable.AddRow();
var rowIndex = row.Index;
foreach (var term in terms)
{
row = myTable.AddRow();
if (term.name == "group")
{
row.KeepWith = rowIndex;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试加载pdf时,我得到一个'对象引用未设置为对象的实例'错误抛出,无法弄清楚原因.任何帮助都会很棒.
我在C#应用程序中使用MigraDoc创建了以下图表:
Chart chart = new Chart(ChartType.Bar2D);
chart.Width = "10cm";
chart.Height = "10cm";
Series series = chart.SeriesCollection.AddSeries();
series.Add(new double[] { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 });
XSeries xseries = chart.XValues.AddXSeries();
xseries.Add("A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
chart.XAxis.MajorTickMark = TickMarkType.Outside;
chart.XAxis.Title.Caption = "X-Axis";
chart.YAxis.MajorTickMark = TickMarkType.Outside;
chart.YAxis.HasMajorGridlines = true;
chart.PlotArea.LineFormat.Color = Colors.AliceBlue;
chart.PlotArea.LineFormat.Width = 1;
chart.PlotArea.LineFormat.Visible = true;
MigraDocObject.Add(chart);
Run Code Online (Sandbox Code Playgroud)
现在让我说我想成为酒吧A Colors.AliceBlue和酒吧B in Colors.DarkGray.我怎么能做到这一点?是否可以通过官方API?或者我必须攻击MigraDoc?
我需要找到一种方法,如何用.png图片填充整个封面页,并在页面的底部放置一些文本,图片不会.
现在我通过使用它来伸展它:
document.DefaultPageSetup.LeftMargin = 0;
document.DefaultPageSetup.TopMargin = 0;
Run Code Online (Sandbox Code Playgroud)
但是上边距仍然留下了som mm的空间(而不是顶部有一些白色的图片.)
PS将来我需要在封面图片上面放一张图片.所以它实际上必须是2层.有什么建议?
我想创建一个应该包含一个表的PDF文件,在这个表下面有三个图像; 图像应该有一个水平布局(它们应该在同一条线上).如何在MigraDoc中对齐三幅图像?如果我以这种方式添加图像
document.LastSection.AddImage("path1");
document.LastSection.AddImage("path2");
document.LastSection.AddImage("path2");
Run Code Online (Sandbox Code Playgroud)
我在桌子下面获得了三张垂直布局的图像.如果我使用
document.LastSection.LastParagraph.AddImage("...");
Run Code Online (Sandbox Code Playgroud)
代替
document.LastSection.AddImage("...")
Run Code Online (Sandbox Code Playgroud)
我解决了这个问题但是我引入了一个新问题.我添加的表格
var table1 = new Table();
.....
document.LastSection.Add(table1);
Run Code Online (Sandbox Code Playgroud)
出现在三张图片下面.
我该怎么做才能获得桌子和桌子下面的水平布局三幅图像?
我知道如何显示页码以及如何在页脚中对齐它们。但是我的问题是我的页脚包含一些自定义文本,这些文本应该左对齐,页码应该与右角对齐。
string footer = "My custom footer";
Paragraph footerParagraph = section.Footers.Primary.AddParagraph(footer);
footerParagraph.AddTab();
footerParagraph.AddPageField();
Run Code Online (Sandbox Code Playgroud)
上面将为第 1 页生成“我的自定义页脚 1”,我需要页面 nmuber 位于页面的最右上角。我可以添加额外的空格或制表符,但我认为必须有一种干净的方法来实现这一点。谢谢。
我想在表格单元格中的某些文本的右侧浮动图像。
cell.AddParagraph("some text");
cell.AddParagraph("next line other text");
Paragraph p = cell.AddParagraph();
p.Format.Alignment = ParagraphAlignment.Right;
p.Format.RightIndent = 12;
Image image = p.AddImage("image.png");
image.ScaleWidth = 0.07;
Run Code Online (Sandbox Code Playgroud)
此代码将图像放在右侧,但我无法将其向上移动。
p.Format.Linespacing = -10;
image.WrapFormat.DistanceTop = -10;
Run Code Online (Sandbox Code Playgroud)
这些设置不起作用。
我将 NuGet 包添加到我的项目中:
PDFsharp + MigraDoc
版本:1.50.4790-beta5a(预发行)
添加了参考文献:
MigraDoc.DocumentObjectModel
MigraDoc.Rendering
MigraDoc.RtfRendering
pdfSharp
PdfSharp.图表
我正在使用 VS2013,针对 .NET Framework 4.5。
没有MigraDocPrintDocument类/命名空间,也没有Printing.MigraDocPrintDocument ...
另外,我尝试将PagePreview控件添加到我的表单中(我正在开发 Windows.Forms 应用程序),但没有这样的控件,也无法将此类项目从 dll/包添加到我的工具箱中。
我已经将 PDF 文档制作得非常简单,但现在我陷入了最后一步,看不到曙光。需要打印到热敏打印机。
我的代码的一小段:
public void PrintMigraDoc(Bitmap ImagenBMP, string nombre, string apellido, string documento, string nacimiento, string nacionalidad, string grupo)
{
//Save image in greyscale
Bitmap bmp = GrayScale(ImagenBMP);
bmp.Save("foto_grey.bmp");
//Create document
Document document = new Document();
//Custom Normal Style
Style style = document.Styles["Normal"];
style.Font.Name = "Calibri";
style.Font.Size = 6;
//Sections …Run Code Online (Sandbox Code Playgroud) 我在我的本地机器上使用MigraDoc生成PDF文档.日文字符显示不正确.
我正在使用下面的说明生成带有Unicode的文档.
var document = new MigraDoc.DocumentObjectModel.Document();
//Do stuff...
PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
renderer.Document = document;
Run Code Online (Sandbox Code Playgroud)
这适用于某些非ASCII字符(强调字母),但不适用于日文字符.
从PDFsharp网站上的示例来看,我认为我应该使用PdfDocument(而不是Migradoc文档)对象,向该文档添加页面,并使用Migradoc对象填充页面
http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx
但是,我已经使用Migradoc创建了一个复杂的多页文档结构; 所以我希望能够按原样重复使用它(例如将它包含在一个PdfDocument中)
任何的想法?
谢谢
我需要在标题上将图像右对齐。这是我的代码:
Section section = document.AddSection();
table = section.Headers.Primary.AddTable();
var column = table.AddColumn("5cm");
column.Format.Alignment = ParagraphAlignment.Left;
column = table.AddColumn("8cm");
column.Format.Alignment = ParagraphAlignment.Left;
column = table.AddColumn("4cm");
column.Format.Alignment = ParagraphAlignment.Right;
eRow.Cells[0].AddParagraph("Some text");
eRow.Cells[1].AddParagraph("Some text");
eRow.Cells[2].Format.Alignment = ParagraphAlignment.Right;
image = eRow.Cells[2].Elements.AddImage(imagePath);
image.LockAspectRatio = false;
image.Width = Unit.FromInch(0.16);
image.Height = Unit.FromInch(0.09);
image.RelativeVertical = RelativeVertical.Line;
image.RelativeHorizontal = RelativeHorizontal.Margin;
image.Top = ShapePosition.Top;
image.Left = ShapePosition.Right;
image.WrapFormat.Style = WrapStyle.Through;
Run Code Online (Sandbox Code Playgroud)
但这总是在左边,请帮忙吗?
如何在截面区域中对齐表格?
MigraDoc.DocumentObjectModel.Tables.Table tFirma = section.Footers.Primary.AddTable();
MigraDoc.DocumentObjectModel.Tables.Column cFirma = tFirma.AddColumn(MigraDoc.DocumentObjectModel.Unit.FromCentimeter(3));//Tamaño de la coluna
MigraDoc.DocumentObjectModel.Tables.Row rFirma = tFirma.AddRow();
rFirma.Cells[0].Format.Alignment = MigraDoc.DocumentObjectModel.ParagraphAlignment.Center;
rFirma.Cells[0].AddParagraph("Employee Signature");
Run Code Online (Sandbox Code Playgroud)