从用户输入生成 pdf 到 PDF Xamarin
Posted
技术标签:
【中文标题】从用户输入生成 pdf 到 PDF Xamarin【英文标题】:Generate pdf from user input to PDF Xamarin 【发布时间】:2021-11-14 06:31:12 【问题描述】:我目前正在开发一个以 Xamarin 形式为 android 和 ios 生成订单的应用程序。客户可以下单,下单方法见代码块。我想创建一个以 PDF 格式显示客户订单的功能。有没有办法从这个函数中创建一个名为“CreatePdfFile”的新函数,该函数会生成包含客户订购的订单的 pdf?
public async Task<string> PlaceOrderAsync()
var cn = DependencyService.Get<ISQLite>().GetConnection();
var data = cn.Table<CartItem>().ToList();
var orderId = Guid.NewGuid().ToString();
var uname = Preferences.Get("Username", "Guest");
foreach(var item in data)
OrderDetails od = new OrderDetails()
OrderId = orderId,
OrderDetailId = Guid.NewGuid().ToString(),
ProductId = item.ProductId,
ProductName = item.ProductName
;
await client.Child("OrderDetails").PostAsync(od);
await client.Child("Orders").PostAsync(
new Order()
OrderId = orderId,
Username = uname
);
return orderId;
【问题讨论】:
您可以使用 iTextSharp 或 PdfSharp 等第三方库。 目前存在许多关于在 Xamarin 中创建 PDF 的问题。 google.com/search?q=xamarin+generate+pdf+site:***.com 【参考方案1】:您可以尝试使用Syncfusion.Xamarin.PDF
。
首先从 NuGet 包安装。
使用表格创建 PDF 文档:
//Create a new PDF document.
PdfDocument doc = new PdfDocument();
//Add a page.
PdfPage page = doc.Pages.Add();
//Create a PdfGrid.
PdfGrid pdfGrid = new PdfGrid();
//Add values to list
List<object> data = new List<object>();
Object row1 = new ID = "E01", Name = "Clay" ;
Object row2 = new ID = "E02", Name = "Thomas" ;
Object row3 = new ID = "E03", Name = "Andrew" ;
Object row4 = new ID = "E04", Name = "Paul" ;
Object row5 = new ID = "E05", Name = "Gray" ;
data.Add(row1);
data.Add(row2);
data.Add(row3);
data.Add(row4);
data.Add(row5);
//Add list to IEnumerable
IEnumerable<object> dataTable = data;
//Assign data source.
pdfGrid.DataSource = dataTable;
//Draw grid to the page of PDF document.
pdfGrid.Draw(page, new PointF(10, 10));
//Save the PDF document to stream.
MemoryStream stream = new MemoryStream();
doc.Save(stream);
//Close the document.
doc.Close(true);
//Save the stream as a file in the device and invoke it for viewing
Xamarin.Forms.DependencyService.Get<ISave>().SaveAndView("Output.pdf", "application/pdf", stream);
有关ISave
的更多详细信息,您可以从Syncfusion官方文档中获取完整代码。
【讨论】:
以上是关于从用户输入生成 pdf 到 PDF Xamarin的主要内容,如果未能解决你的问题,请参考以下文章
Syncfusion Xamarin.Forms生成的PDF格式的文本