我有一个这样的数据表:
// create dataset
DataSet ds = new DataSet("myDataset");
// create datatable
DataTable dt = new DataTable("myDatatable");
// add columns
dt.Columns.Add("column1", typeof(string));
dt.Columns.Add("column2", typeof(string));
dt.Columns.Add("column3", typeof(string));
dt.Columns.Add("column4", typeof(string));
// insert data rows
dt.Rows.Add("row1-col1","row1-col2", "row1-col3", "row1-col4");
dt.Rows.Add("row2-col1","row2-col2", "row2-col3", "row2-col4");
// add datatable to dataset
ds.Tables.Add(dt);
// bind dataset & datatable to datagridview
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "myDatatable";
Run Code Online (Sandbox Code Playgroud)
我想使用pdfsharp创建pdf 报告。如何将数据表绑定到pdfsharp?
我有一个方法Save可以将 PDF 文档保存在指定位置。
PdfDocument Document=new PdfDocument();
public void Save(string pathWithFileName)
{
Document.Save(pathWithFileName);
}
Run Code Online (Sandbox Code Playgroud)
现在我画一些段落,使用XGrahics类。然后我使用保存文档Save方法。它完美地工作。
现在我想重新打开文档,添加一些东西并再次保存文档。我怎样才能做到这一点?
我在路径中遇到错误,因为它正在检索System.Byte[]。如何访问添加到我的资源中的 PDF?
代码:
PdfDocument = PdfSharp.Pdf.IO.PdfReader.Open(My.Resources.CANEezz_Individual.ToString, PdfDocumentOpenMode.Modify)
Dim font9 As XFont = New XFont("Arial", 8)
Dim page As PdfPage = PdfDocument.Pages(0)
Dim graph As XGraphics = XGraphics.FromPdfPage(page)
graph.DrawString("Bank Passboook", font9, XBrushes.Black, 518, 343)
Dim pdfFilename As String = "something.pdf"
PdfDocument.Save(pdfFilename)
Process.Start(pdfFilename)
Run Code Online (Sandbox Code Playgroud) 我正在使用 PDFsharp,并且尝试打开一个表示为 Byte[] 变量的 PDF。这是一个简化的示例:
public Byte[] myFunc(Byte[] PDF)
{
PdfDocument document = PdfReader.Open(PDF_Path); // <-- My problem is here
// do some modification on the document
return document;
}
Run Code Online (Sandbox Code Playgroud)
我可以从 PDF 的路径中读取 PDF,但我宁愿将 PDF 作为字节数组来使用。将字节数组另存为 PDF 然后读取它,然后删除我创建的文件是否是更好的选择?我觉得这种方法不合适。
希望有人在那里可能有同样的问题,并找到了解决方案.
我正在尝试将表中的某些行设置为要分组,以便如果一行落入下一页,则其他行也将转到该下一页.
我正在使用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时,我得到一个'对象引用未设置为对象的实例'错误抛出,无法弄清楚原因.任何帮助都会很棒.
我想用PDFSharp创建一个函数来合并一些pdf.
这是我的代码
public class PDF_Merge
{
static string [] strTabPdfFiles;
public static string SetPdfToMerge(string strPdfFilesInput)
{
strTabPdfFiles = strPdfFilesInput.Split(';');
return "O";
}
public static string MergeToPdf(string strPdfFilesOutput)
{
try
{
PdfDocument objDocumentFinal = new PdfDocument(strPdfFilesOutput);
foreach (string strDoc in strTabPdfFiles)
{
PdfDocument objDocument = PdfReader.Open(strDoc, PdfDocumentOpenMode.Import);
foreach (PdfPage page in objDocument.Pages)
{
objDocumentFinal.AddPage(page);
}
objDocument.Close();----------> Exception : File cannot be modified
}
objDocumentFinal.Close();
objDocumentFinal.Save(strPdfFilesOutput);
}
catch (Exception ex)
{
return ex.Message;
}
return "O";
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在objDocument.Close()调用中,我有一个例外:"文档无法修改".
有人可以帮我这个吗?
非常感谢这个lib,
最好的祝福, …
我有一个文本数据表,我想通过几个空格缩进某些数据,但我尝试的所有内容似乎都会导致我的字符串被自动修剪,并删除前面的空格.现在的PDF看起来像这样:
http://i.imgur.com/KBK6jWS.png
因此,例如,我想稍微缩进'LiabilityOne'和'LiabilityTwo'.我已经尝试在String中添加空格了.在渲染之前添加空格,使用'\ x020'希望坚持使用PadLeft(String.Length + 2,''),一切都没有运气.
当然有一种方法我可以在这些字符串中添加一些前面的空格.我该怎么做?
编辑:
上下文 - 这是为右侧表格的后半部分生成内容的方法.其他一切非常相似.
private void DrawStaticLiabilities()
{
_PdfVerticalOffset = 85 + (_PdfRowsFSRight * _PdfRowHeight);
Document tDoc = new Document();
MigraDoc.DocumentObjectModel.Style style = tDoc.Styles["Normal"];
style.Font.Name = tPdfFont;
style.Font.Size = 10;
Section tSec = tDoc.AddSection();
MigraDoc.DocumentObjectModel.Tables.Table table2 = new MigraDoc.DocumentObjectModel.Tables.Table();
table2 = tSec.AddTable();
table2.Borders.Width = 0.2;
table2.Rows.LeftIndent = 0;
Column columnData2 = table2.AddColumn("295pt");
Column columnValue2 = table2.AddColumn("70pt");
columnValue2.Borders.Right.Visible = false;
Row rowAb = table2.AddRow();
rowAb.Borders.Top.Visible = true;
rowAb.Borders.Bottom.Visible = false;
rowAb.Cells[0].AddParagraph(MP.FormFinancialStatement.StaticLiabilites.TopLine);
rowAb.Cells[1].AddParagraph("");
Row row1b …Run Code Online (Sandbox Code Playgroud) 带有MigraDoc的PDFsharp是否支持HTML语法?
<a> <strong> etc.
Run Code Online (Sandbox Code Playgroud)
如果是,如何在文档中实现它?
我正在尝试使用MigraDoc创建PDF文档,并且当表包含左缩进时,我遇到表边框问题.
我将数据传递给以下函数来呈现表.
public void AddTable(int _iNumberOfColumns, double leftInd)
{
table = section.AddTable();
if (leftInd != 0d)
{
table.Format.LeftIndent = leftInd;
}
for (int i = 0; i < _iNumberOfColumns; i++)
{
Column col = table.AddColumn();
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的方法中,我传递参数的double值leftInd.我认为,这是问题的原因.
添加单元格的代码如下.我正在通过bool变量来判断是否需要显示单元格边框...(要添加一行我只是调用row = table.AddRow();)
public void AddColumn(int _iCellNum, int iColspan, double dCellWidthInPt, System.Drawing.Color color, bool bTopBorder, bool bLeftBorder, bool bBottomBorder, bool bRightBorder)
{
cell = row.Cells[_iCellNum];
if (iColspan > 0)
{
cell.MergeRight = iColspan-1;
for (int i = 0; …Run Code Online (Sandbox Code Playgroud) 我正在使用MigraDoc创建PDF.除了设置段落的行间距外,一切正常.我希望段落行之间有更多的垂直空间.
到目前为止我尝试的内容没有对生成的PDF 进行任何更改:
string text = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam …Run Code Online (Sandbox Code Playgroud) pdfsharp ×10
c# ×6
migradoc ×5
pdf ×5
.net ×2
byte ×1
datagridview ×1
datatable ×1
filestream ×1
line-spacing ×1
paragraph ×1
string ×1
vb.net ×1
vb.net-2010 ×1
winforms ×1