我在PDF上制作了一个凭单生成器,我已经设法开始工作,当用户在文本字段上写的时候生成凭单,然后用这些值输出ASP.NET。
我想有一个选择,写多少个代金券时,它将使这个PDF文件。
我的代码如下所示:
public FileResult Edit(SpiseKopunTable model)
{
bool b = repository.PutSpiseKopun(model);
DateTime d = new DateTime(1980, 1, 1);
DateTime.TryParse(model.Dato.ToString(), out d);
int c = new int();
int.TryParse(model.ID.ToString(), out c);
using (MemoryStream stream = new System.IO.MemoryStream())
{
StringReader sr = new StringReader("<table><tbody><tr><td>GL:" + model.GL +
"</td></ tr >< tr >" +
"< td > Service:" + model.Service +
"</ td ></ tr >< tr >" +
"< td > Dato:" + d.ToString("dd-MM-yyyy") +
"</ td ></ tr >< tr >" +
"< td > Pris:" + model.Pris +
"</ td ></ tr >< tr >" +
"< td > Kommentar:" + model.Kommentar +
"</ td ></ tr><tr>" +
"<td> ID:" + c.ToString() +
"</ td ></ tr ></ tbody ></ table >");
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
return File(stream.ToArray(), "application/pdf", "Airgreenland-vouchers.pdf");
}
}如果用户想要3张代金券,它将输出3张"sr“表,并可以打印出来。
关于Erneeraq
发布于 2017-11-10 03:24:25
使用StringBuilder并多次插入相同的字符串,然后在StringReader中使用该字符串:
var numberOfVouchers = 3;
string voucherTable = String.Format(@"<table><tbody><tr><td>GL:{0}
</td></ tr >< tr >
< td > Service:{1}
</ td ></ tr >< tr >
< td > Dato:{2}
</ td ></ tr >< tr >
< td > Pris:{3}
</ td ></ tr >< tr >
< td > Kommentar:{4}
</ td ></ tr><tr>
<td> ID:{5}
</ td ></ tr ></ tbody ></ table >",
model.GL,
model.Service,
d.ToString("dd-MM-yyyy"),
model.Pris,
model.Kommentar,
c.ToString()
);
StringReader sr = new StringReader(
new StringBuilder().Insert(0, voucherTable, numberOfVouchers).ToString()
);发布于 2017-11-10 19:43:33
是像这样吗?
public FileResult Edit(SpiseKopunTable model)
{
bool b = repository.PutSpiseKopun(model);
DateTime d = new DateTime(1980, 1, 1);
DateTime.TryParse(model.Dato.ToString(), out d);
int c = new int();
int.TryParse(model.ID.ToString(), out c);
using (MemoryStream stream = new System.IO.MemoryStream())
{
var numberOfVouchers = 3;
string voucherTable = String.Format(@"<table><tbody><tr><td>GL:{0}
</td></ tr >< tr >
< td > Service:{1}
</ td ></ tr >< tr >
< td > Dato:{2}
</ td ></ tr >< tr >
< td > Pris:{3}
</ td ></ tr >< tr >
< td > Kommentar:{4}
</ td ></ tr><tr>
<td> ID:{5}
</ td ></ tr ></ tbody ></ table >",
model.GL,
model.Service,
d.ToString("dd-MM-yyyy"),
model.Pris,
model.Kommentar,
c.ToString()
);
StringReader sr = new StringReader(
new StringBuilder().Insert(0, voucherTable, numberOfVouchers).ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
return File(stream.ToArray(), "application/pdf", "Airgreenland-vouchers.pdf");
}我得到“类型或名称空间名称'StringBuilder‘找不到”错误。
关于Erneeraq
https://stackoverflow.com/questions/47208995
复制相似问题