私のアプリケーションでは、ユーザーが PDF ファイルを作成できるようにしています。また、ユーザーは形状 (四角形、線など)、フォーム フィールド (テキストエリア、チェックボックスなど) を PDF ファイルに追加できます。ユーザーが保存ボタンをクリックすると、PDF は正常に作成されますが、ユーザーがドキュメントに含めた形状とフォーム フィールドは表示されません。
function create_PDF(box) {
var filename = $("#filename").val();
if (filename == "") {
alert("Enter filename");
return false;
}
var content = CKEDITOR.instances["message"].getData();
if (content == "") {
alert("Enter Content in The Editor");
return false;
}
content = content.trim();
dhtmlx.modalbox.hide(box);
dhtmlx.message("Saving file...");
$.post("/FileUpload/CreateNewPDFile",
{
filename: '' + filename + '', content: '' + content + ''
}, function (data) {
alert("PDF File created succesfully");
CKEDITOR.instances["message"].setData("");
CKEDITOR.instances["editor1"].setData("");
});
}
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult CreateNewPDFile(FormCollection data)
{
var filename = data["filename"];
var htmlContent = data["content"];
string sFilePath = Server.MapPath(_createdPDF + filename + ".pdf");
htmlContent = htmlContent.Trim();
htmlContent = htmlContent.Replace("<p>", "\n").Replace("</p>", "\n");
Regex reg = new Regex("<[^>]+>", RegexOptions.IgnoreCase);
if (!System.IO.File.Exists(sFilePath))
{
Document doc = new Document(PageSize.A4, 10, 10, 10, 10);
doc.SetMargins(50, 50, 50, 50);
doc.SetPageSize(new iTextSharp.text.Rectangle(iTextSharp.text.PageSize.LETTER.Width, iTextSharp.text.PageSize.LETTER.Height));
PdfWriter.GetInstance(doc, new System.IO.FileStream(sFilePath, System.IO.FileMode.Create));
iTextSharp.text.Font fnt = FontFactory.GetFont("Times New Roman", 14);
doc.Open();
PdfPTable pdfTab = new PdfPTable(1);
PdfPCell pdfCell = null;
pdfCell = new PdfPCell(new Phrase(new Chunk(htmlContent)));
pdfTab.AddCell(pdfCell);
doc.Add(pdfTab);
doc.Close();
Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.Write(doc);
Response.Flush();
Response.End();
}
return View();
}
新しく作成された PDF に textarea 、rectangle、checkmark の代わりに textarea 、rectangle、checkmark が含まれている場合、次のように表示されます。このコードを回避し、ドキュメントのそれぞれの画像に表示する方法