static void PDFEmbed(string file, string text) { var tmpdir = Path.GetTempPath(); var tmp = TempFilesDeleter.GetTempFileName(".pdf", tmpdir); tmp = Path.Combine(tmpdir, tmp); using (var tmp_deleter = new TempFilesDeleter(tmpdir)) { tmp_deleter.AddFile(tmp); using (var mupdf = new MuPDF(mudraw)) { var doc = mupdf.Execute <int>("open_document", file); if (doc == 0) { return; } var page = mupdf.Execute <int>("load_page", doc, 0); if (page == 0) { return; } var annot = mupdf.Execute <int>("create_annot", page, "Text"); if (annot == 0) { return; } mupdf.Execute("set_annot_contents", annot, ChangeReturnCode(PDFsrcHead + System.Environment.NewLine + text, "\n")); mupdf.Execute("set_annot_flag", annot, 35); mupdf.Execute("write_document", doc, tmp); } if (File.Exists(tmp)) { File.Delete(file); File.Move(tmp, file); } } }
static string PDFRead(string file) { var srcHead = PDFsrcHead + System.Environment.NewLine; using (var mupdf = new MuPDF(mudraw)) { var doc = mupdf.Execute <int>("open_document", file); if (doc == 0) { return(null); } var page = mupdf.Execute <int>("load_page", doc, 0); if (page == 0) { return(null); } var annot = mupdf.Execute <int>("first_annot", page); while (annot != 0) { var rect = mupdf.Execute <BoundingBox>("bound_annot", annot); if (rect.Width == 0 && rect.Height == 0) { if (mupdf.Execute <string>("annot_type", annot) == "Text") { var text = mupdf.Execute <string>("annot_contents", annot); text = ChangeReturnCode(text); if (text.StartsWith(srcHead)) { return(text.Substring(srcHead.Length)); } } } annot = mupdf.Execute <int>("next_annot", annot); } } return(null); }