private void searchBox1_TypingFinished(object sender, EventArgs e) { if (searchBox1.Text.Trim() == "" || searchBox1.Text == searchBox1.DisplayText) return; fileList1.listView1.Sorting = SortOrder.None; tree1.SelectMainNode(); //关键字搜 HtmlConverter h = new HtmlConverter(); fileList1.listView1.Items.Clear(); string[] files = Directory.GetFiles(path, "*.htm", SearchOption.AllDirectories); win32AddressBar1.ProgressBarMax = files.Length; fileList1.listView1.Items.Clear(); for (int i = 0; i < files.Length; i++) { Application.DoEvents(); //列出所有HTM文件 if (searchBox1.Text.Trim() == "*") { fileList1.AddSearchItem(files[i]); } else { //文件名搜索 if (searchAll1.Checked || searchFileName1.Checked) { if (Path.GetFileName(files[i]).Contains(searchBox1.Text.ToUpper())) { if (files[i].ToLower().IndexOf("_files")==-1 && files[i].ToLower().IndexOf("_attachments") == -1 ) { fileList1.AddSearchItem(files[i]); } } } //关键字搜索 if (searchAll1.Checked || searchKeyWord1.Checked) { string s = File.ReadAllText(files[i], Encoding.UTF8); s = h.HtmlToText(s).ToUpper(); if (s.Contains(searchBox1.Text.ToUpper())) fileList1.AddSearchItem(files[i]); } } //取消搜索 if (searchBox1.Text.Trim() == "" || searchBox1.Text == searchBox1.DisplayText) { win32AddressBar1.ProgressBarValue = 0; win32AddressBar1.progressBarBackColor = Color.White; break; } win32AddressBar1.ProgressBarValue = i; toolStripStatusLabel2.Text = string.Format("{0} 个文件 ", fileList1.listView1.Items.Count); } win32AddressBar1.ProgressBarValue = 0; win32AddressBar1.progressBarBackColor = Color.White; }
public void CustomHtmlFromCallbackUsed() { var ops = JArray.Parse( @"[{ insert: { video: ""http"" } }, { insert: 'aa' }]"); BeforeRenderer beforeRenderer = (groupType, group) => "<my custom video html>"; var qdc = new HtmlConverter(ops, new HtmlConverterOptions { BeforeRenderer = beforeRenderer }); var html = qdc.Convert(); html.Should().Contain("<my custom"); }
public void RenderInlinesStyledNLNoParagraphTag() { var ops = new DeltaInsertOp[] { new DeltaInsertOp("\n", new OpAttributes { Font = "arial" }) }; var qdc = new HtmlConverter(new JArray(), new HtmlConverterOptions { ParagraphTag = "" }); var html = qdc.RenderInlines(ops); html.Should().Be("<br/>"); }
public void TargetAttrTopTarget() { var qdc = new HtmlConverter(_targetOps, new HtmlConverterOptions() { LinkTarget = "_top" }); var html = qdc.Convert(); html.Should().Be( "<p><a href=\"http://#\" target=\"_self\">A</a>" + "<a href=\"http://#\" target=\"_blank\">B</a>" + "<a href=\"http://#\" target=\"_top\">C</a></p>"); }
public virtual void ResourceResolverLinkDirectRefTest() { String outPdf = destinationFolder + "resourceResolverLinkDirectRef.pdf"; String cmpPdf = sourceFolder + "cmp_resourceResolverLinkDirectRef.pdf"; using (FileStream fileInputStream = new FileStream(sourceFolder + "resourceResolverLinkDirectRef.html", FileMode.Open , FileAccess.Read)) { using (FileStream fileOutputStream = new FileStream(outPdf, FileMode.Create)) { HtmlConverter.ConvertToPdf(fileInputStream, fileOutputStream, new ConverterProperties().SetBaseUri(sourceFolder )); } } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder)); }
public virtual void ResourceResolverTest11() { String outPdf = destinationFolder + "resourceResolverTest11.pdf"; String cmpPdf = sourceFolder + "cmp_resourceResolverTest11.pdf"; using (FileStream fileInputStream = new FileStream(sourceFolder + "resourceResolverTest11.html", FileMode.Open , FileAccess.Read)) { using (FileStream fileOutputStream = new FileStream(outPdf, FileMode.Create)) { HtmlConverter.ConvertToPdf(fileInputStream, fileOutputStream, new ConverterProperties().SetBaseUri("https://en.wikipedia.org/wiki/Welsh_Corgi" )); } } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder)); }
private void WritePdfDocument(string html, string css, Stream outputStream) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); MediaDeviceDescription deviceDescription = new MediaDeviceDescription(MediaType.ALL) .SetWidth(PageSize.A4.GetWidth()) .SetHeight(PageSize.A4.GetHeight()); ConverterProperties converterProperties = new ConverterProperties().SetMediaDeviceDescription(deviceDescription); PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outputStream)); var doc = new Document(pdfDoc, PageSize.A4, true); HtmlConverter.ConvertToPdf(html, doc.GetPdfDocument(), converterProperties); }
private IList <OpenXmlCompositeElement> ConvertContentToParagraphs(MainDocumentPart mainDocumentPart) { var converter = new HtmlConverter(mainDocumentPart) { RenderPreAsTable = false }; return(converter.Parse(_content .Replace("<img", "<img style=\"max-width:550;\"") .Replace("<pre><code>", "<p class=\"codesnippet\"><pre>") .Replace("</code></pre>", "</pre></p>") .Replace("<code>", "<span class=\"inlinecodesnippet\">") .Replace("</code>", "</span>"))); }
public async Task <List <Whisky> > Initialize() { var whiskiesTotal = new List <Whisky>(); var availableScrapers = ConfigurationManager.AppSettings["AvailableScrapers"].Split(";"); var htmlConverter = new HtmlConverter(_logger); var random = new Random(); foreach (var scraper in availableScrapers) { whiskiesTotal.AddRange(await GetScrapedWhiskies(random, htmlConverter, scraper)); } return(whiskiesTotal); }
public virtual void Test() { String input = "<html>\n" + "<head><title>Test</title></head>" + "<body style=\"font-family: FreeSans;\">" + "<h1>Test</h1>" + "<br />" + "<p>Hello World</p>" + "</body>" + "</html>"; IList <IElement> elements = HtmlConverter.ConvertToElements(input); NUnit.Framework.Assert.AreEqual(3, elements.Count); NUnit.Framework.Assert.IsTrue(elements[1] is Paragraph); NUnit.Framework.Assert.AreEqual(1, ((Paragraph)elements[1]).GetChildren().Count); IElement iElement = ((Paragraph)elements[1]).GetChildren()[0]; NUnit.Framework.Assert.AreEqual(new String[] { "freesans" }, iElement.GetProperty <String[]>(Property.FONT) ); }
public void fromHtml() { PdfDocument pdf = new PdfDocument( new PdfWriter(dest)); //we use a PdfDocument Object instead of FileStream to write HTML into ConverterProperties cprop = new ConverterProperties(); FontProvider provider = new FontProvider(); provider.AddFont(font_path, PdfEncodings.IDENTITY_H); cprop.SetFontProvider(provider); pdf.AddEventHandler(PdfDocumentEvent.END_PAGE, new WatermarkEvent()); //here we add custom event handler HtmlConverter.ConvertToPdf(new FileStream(html_path, FileMode.Open), pdf, cprop); }
public void InvalidLinkHtml() { //arrange var html = "<p>Neusten Ermittlungen zufolge, hat einer von ihnen, der 19-jährige A. P., drei Monate vor dem Angriff noch am Flughafen bei Chambéry Vollzeit als Gepäckträger gearbeitet, wie die «<a href=\"null\" target=\"_blank\"></a><a href=\"http://www.dailymail.co.uk/news/article-3714232/ISIS-church-attacker-worked-French-airport-baggage-handler-just-months-priest-murder-got-police-checks-easily-secure-job.html?ito=social-twitter_mailonline\" target=\"_blank\">DailyMail</a>» berichtet. Dort landen und starten pro Jahr über 250'000 Passagiere.</p>"; var converter = new HtmlConverter(""); //act var paragraphs = converter.HtmlToParagraph(html); //assert Assert.IsTrue(paragraphs.Count == 1); Assert.IsTrue(paragraphs[0].Children.Count == 3); }
public virtual void ResourceResolverNotValidInlineSvgTest() { String html = sourceFolder + "resourceResolverNotValidInlineSvg.html"; String outPdf = destinationFolder + "resourceResolverNotValidInlineSvg.pdf"; String cmpPdf = sourceFolder + "cmp_resourceResolverNotValidInlineSvg.pdf"; using (FileStream htmlInput = new FileStream(html, FileMode.Open, FileAccess.Read)) { using (FileStream pdfOutput = new FileStream(outPdf, FileMode.Create)) { HtmlConverter.ConvertToPdf(htmlInput, pdfOutput, new ConverterProperties().SetBaseUri(sourceFolder)); } } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diffCorruptedSvg_" )); }
/// <summary> /// Creates the PDF file. /// </summary> /// <param name="src">the path to the source HTML file</param> /// <param name="fonts">an array containing paths to extra fonts</param> /// <param name="dest">the path to the resulting PDF</param> public void CreatePdf(String src, String[] fonts, String dest) { ConverterProperties properties = new ConverterProperties(); FontProvider fontProvider = new DefaultFontProvider(false, false, false); foreach (String font in fonts) { FontProgram fontProgram = FontProgramFactory.CreateFont(font); fontProvider.AddFont(fontProgram); } properties.SetFontProvider(fontProvider); HtmlConverter.ConvertToPdf(new FileInfo(src), new FileInfo(dest), properties); }
public static void GeneratePDF(CharacterSheet sheet) { var html = GenerateHtml(sheet); SimpleIoc.Default.GetInstance <IIoService>().FileSaverDialog( sheet.Characteristics.Name, ".pdf", "PDF", "PDF-Export", x => { using (var fs = new FileStream(x, FileMode.Create)) { HtmlConverter.ConvertToPdf(html, fs); } }); }
private static void Main() { var converter = new HtmlConverter(); var html = "<div><strong>Hello</strong> World!</div>"; var htmlBytes = converter.FromHtmlString(html, format: ImageFormat.Png, customFlags: "--encoding 'UTF-8'"); File.WriteAllBytes("./html.png", htmlBytes); // From URL var urlBytes = converter.FromUrl("http://google.com"); File.WriteAllBytes("./url.png", urlBytes); }
public virtual void Meta01Test() { HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "metaTest01.html"), new FileInfo(destinationFolder + "metaTest01.pdf")); PdfDocumentInfo pdfDocInfo = new PdfDocument(new PdfReader(destinationFolder + "metaTest01.pdf")).GetDocumentInfo (); CompareTool compareTool = new CompareTool(); NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(destinationFolder + "metaTest01.pdf", sourceFolder + "cmp_metaTest01.pdf")); NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(destinationFolder + "metaTest01.pdf", sourceFolder + "cmp_metaTest01.pdf", destinationFolder, "diff01_")); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("test"), "the test content"); }
public void Init() { generatedDocument = new System.IO.MemoryStream(); package = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document); mainPart = package.MainDocumentPart; if (mainPart == null) { mainPart = package.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); } this.converter = new HtmlConverter(mainPart); }
public static XElement ConvertToHtml(WordprocessingDocument wordDocument) { HtmlConverterSettings settings = new HtmlConverterSettings() { PageTitle = "My Page Title", CssClassPrefix = "", Css = "", ConvertFormatting = false }; XElement html = HtmlConverter.ConvertToHtml(wordDocument, settings, null); return(html); }
public virtual void LinkTest01() { System.Console.Out.WriteLine("html: file:///" + UrlUtil.ToNormalizedURI(sourceFolder + "linkTest01.html"). AbsolutePath + "\n"); PdfDocument outDoc = new PdfDocument(new PdfWriter(destinationFolder + "linkTest01.pdf")); outDoc.SetTagged(); using (FileStream fileInputStream = new FileStream(sourceFolder + "linkTest01.html", FileMode.Open, FileAccess.Read )) { HtmlConverter.ConvertToPdf(fileInputStream, outDoc); } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + "linkTest01.pdf", sourceFolder + "cmp_linkTest01.pdf", destinationFolder, "diff01_")); }
private static void Main(string[] args) { var converter = new HtmlConverter(); var html = "<div><strong>Hello</strong> World!</div>"; var htmlBytes = converter.FromHtmlString(html, PageSize.A5, PageOrientation.Landscape, customFlags: "--encoding 'UTF-8'"); File.WriteAllBytes("./html.pdf", htmlBytes); // From URL var urlBytes = converter.FromUrl("http://google.com", PageSize.Letter, PageOrientation.Landscape, customFlags: "--encoding 'UTF-8'"); File.WriteAllBytes("./url.pdf", urlBytes); }
public virtual void WordBreakMidNumbersTest() { // TODO: update cmp file after implementing DEVSIX-1438 FontProvider fontProvider = new DefaultFontProvider(); fontProvider.AddFont(fontsFolder + "NotoSansCJKjp-Regular.otf"); ConverterProperties converterProperties = new ConverterProperties(); converterProperties.SetFontProvider(fontProvider); HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "wordBreakMidNumbers.html"), new FileInfo(destinationFolder + "wordBreakMidNumbers.pdf"), converterProperties); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + "wordBreakMidNumbers.pdf" , sourceFolder + "cmp_wordBreakMidNumbers.pdf", destinationFolder)); }
public virtual void LinkTest10ToPdfa() { Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument pdfADocument = new PdfADocument(new PdfWriter(destinationFolder + "linkTest10.pdf"), PdfAConformanceLevel .PDF_A_2A, new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", @is)); pdfADocument.SetTagged(); using (FileStream fileInputStream = new FileStream(sourceFolder + "linkTest10.html", FileMode.Open, FileAccess.Read )) { HtmlConverter.ConvertToPdf(fileInputStream, pdfADocument); } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + "linkTest10.pdf", sourceFolder + "cmp_linkTest10.pdf", destinationFolder, "diff10_")); }
public virtual void Test() { String sourceFolder = GetSourceFolder(); String destinationFolder = GetDestinationFolder(); String htmlFilePath = sourceFolder + GetHtmlFileName(); String outFilePath = destinationFolder + GetOutPdfFileName(); String cmpFilePath = sourceFolder + GetOutPdfFileName(); System.Console.Out.WriteLine("html: file:///" + UrlUtil.ToNormalizedURI(htmlFilePath).AbsolutePath + "\n"); HtmlConverter.ConvertToPdf(new FileInfo(htmlFilePath), new FileInfo(outFilePath), GetConverterProperties() ); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFilePath, cmpFilePath, destinationFolder , "diff_")); }
public Stream RenderHtml(string html) { var memoryStream = new MemoryStream(); using (var pdfWriter = new PdfWriter(memoryStream)) { pdfWriter.SetCloseStream(false); HtmlConverter.ConvertToPdf(html, pdfWriter); } memoryStream.Position = 0; return(memoryStream); }
public virtual void ConvertInlineSvgRoundedRectangle() { String html = "inline_svg_rounded_rect"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + html + ".pdf")); pdfDoc.AddNewPage(); String string_file = "<!DOCTYPE html>\n" + "<html>\n" + "<body>\n" + "\n" + "<svg width=\"400\" height=\"180\">\n" + " <rect x=\"50\" y=\"20\" rx=\"20\" ry=\"20\" width=\"150\" height=\"150\"\n" + " style=\"fill:red;stroke:black;stroke-width:5;opacity:0.5\" />\n" + "Sorry, your browser does not support inline SVG.\n" + "</svg>\n" + "\n" + "</body>\n" + "</html>\n"; HtmlConverter.ConvertToPdf(string_file, pdfDoc, new ConverterProperties()); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + html + ".pdf", sourceFolder + "cmp_" + html + ".pdf", destinationFolder)); }
public virtual void ConvertInlineSvgCircle() { String html = "inline_svg_circle"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + html + ".pdf")); pdfDoc.AddNewPage(); String string_file = "<!DOCTYPE html>\n" + "<html>\n" + "<body>\n" + "\n" + "<svg width=\"100\" height=\"100\">\n" + " <circle cx=\"50\" cy=\"50\" r=\"40\" stroke=\"green\" stroke-width=\"4\" fill=\"yellow\" />\n" + "</svg>\n" + "\n" + "</body>\n" + "</html>"; HtmlConverter.ConvertToPdf(string_file, pdfDoc, new ConverterProperties()); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + html + ".pdf", sourceFolder + "cmp_" + html + ".pdf", destinationFolder)); }
public async ValueTask <ManagedIdDto> RenderWordAsync(Stream stream, string title, TUserBrief user, Guid id) { var anytask = AnyAsync(a => a.ArticleId == id); var article = Activator.CreateInstance <TArticle>(); using WordprocessingDocument doc = WordprocessingDocument.Open(stream, true); HtmlConverterSettings settings = new HtmlConverterSettings() { PageTitle = "My Page Title", ImageHandler = WordImageHandler }; XElement html = HtmlConverter.ConvertToHtml(doc, settings); article.AuthorBrief = user; var santilizetask = Santilize(html.ToStringNewLineOnAttributes()); article.Title = title; article.IsDraft = true; article.Visibility = ArticleVisibility.everyone; article.Saved = true; article.DraftOrPublishId = Guid.Empty; Guid aid = Guid.Empty; article.Content = await santilizetask; article.Content = string.Concat(article.Content, @" <hr> <p>本文章由word文档转换而成</p> "); var ud = Builders <TArticle> .Update .Set(a => a.Content, article.Content) .Set(a => a.Saved, true); if (id != Guid.Empty && await anytask) { await UpDateAsync(a => a.ArticleId == id && a.IsDraft == true, ud); aid = id; } else { article.ArticleId = Guid.NewGuid(); article.DraftOrPublishId = Guid.Empty; await AddArticleAsync(article); aid = article.ArticleId; } return(new ManagedIdDto(await GetManagedIdAsync(aid), aid)); }
static void Main(string[] args) { const string filename = "test.docx"; string html = ResourceHelper.GetString("Resources.CompleteRunTest.html"); if (File.Exists(filename)) { File.Delete(filename); } using (MemoryStream generatedDocument = new MemoryStream()) { // Uncomment and comment the second using() to open an existing template document // instead of creating it from scratch. using (var buffer = ResourceHelper.GetStream("Resources.template.docx")) { buffer.CopyTo(generatedDocument); } generatedDocument.Position = 0L; using (WordprocessingDocument package = WordprocessingDocument.Open(generatedDocument, true)) //using (WordprocessingDocument package = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document)) { MainDocumentPart mainPart = package.MainDocumentPart; if (mainPart == null) { mainPart = package.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); } HtmlConverter converter = new HtmlConverter(mainPart); //converter.WebProxy.Credentials = new System.Net.NetworkCredential("nizeto", "****", "domain"); //converter.WebProxy.Proxy = new System.Net.WebProxy("proxy01:8080"); converter.ImageProcessing = ImageProcessing.ManualProvisioning; converter.ProvisionImage += OnProvisionImage; Body body = mainPart.Document.Body; converter.ParseHtml(html); mainPart.Document.Save(); AssertThatOpenXmlDocumentIsValid(package); } File.WriteAllBytes(filename, generatedDocument.ToArray()); } System.Diagnostics.Process.Start(filename); }
public virtual void ConvertInlineSvgStar() { // TODO: Update cmp_ file when DEVSIX-2719 resolved String html = "inline_svg_star"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + html + ".pdf")); pdfDoc.AddNewPage(); String string_file = "<!DOCTYPE html>\n" + "<html>\n" + "<body>\n" + "\n" + "<svg width=\"300\" height=\"200\">\n" + " <polygon points=\"100,10 40,198 190,78 10,78 160,198\"\n" + " style=\"fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;\" />\n" + "Sorry, your browser does not support inline SVG.\n" + "</svg>\n" + " \n" + "</body>\n" + "</html>\n"; HtmlConverter.ConvertToPdf(string_file, pdfDoc, new ConverterProperties()); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + html + ".pdf", sourceFolder + "cmp_" + html + ".pdf", destinationFolder)); }
/// <summary> /// Adds the HTML. /// </summary> /// <param name="html">The HTML.</param> public void AddHtml(string html) { var mainPart = _wordProcessingDocument.MainDocumentPart; if (mainPart == null) { mainPart = _wordProcessingDocument.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); } var converter = new HtmlConverter(mainPart); converter.ParseHtml(html); mainPart.Document.Save(); }
public void ConvertHtmlContentToPdf() { var converter = new HtmlConverter(); var setting = new GenerateSettings { HtmlFileContent = "<b>Bold Text</b><br /><br /><i>Italic Text</i>", OutputType = OutputType.PDF, }; setting.GlobalOptions.FooterHtmlUrl = "http://www.oracle.com/splash/rpls/embargoed.html"; setting.GlobalOptions.HeaderHtmlUrl = "http://wkhtmltopdf.org/libwkhtmltox/"; setting.GlobalOptions.MarginTop = "30mm"; setting.GlobalOptions.MarginBottom = "30mm"; setting.GlobalOptions.ShowFooterLine = true; setting.GlobalOptions.ShowHeaderLine = true; var filePath = converter.Convert(setting); Assert.IsTrue(File.Exists(filePath)); }
void before_each() { converter = new HtmlConverter(); pdf = new Section(); }