PDF készítés DevExpressel.

This commit is contained in:
2025-04-02 13:01:49 +02:00
parent 12bf69aadd
commit 90637b3848
9 changed files with 114 additions and 109 deletions
@@ -1,108 +1,35 @@
using Aspose.Words;
using Aspose.Words.Tables;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DevExpress.XtraRichEdit;
namespace WorkFlowCheck.BL.DocumentGenerator
{
public class DokumentumGenerator
{
static DokumentumGenerator()
public static byte[] DocxToPdf(byte[] wordBytes)
{
Aspose.Words.License license = new Aspose.Words.License();
try
using (MemoryStream inputStream = new MemoryStream(wordBytes))
using (MemoryStream outputStream = new MemoryStream())
{
license.SetLicense("Aspose.Words.lic");
Log.Information("License set successfully.");
try
{
// RichEditDocumentServer használata a konverzióhoz
using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer())
{
// Dokumentum betöltése a byte tömbből
wordProcessor.LoadDocument(inputStream, DevExpress.XtraRichEdit.DocumentFormat.OpenXml);
// PDF formátumba mentés a memóriafolyamba
wordProcessor.ExportToPdf(outputStream);
// PDF byte tömb visszaadása
return outputStream.ToArray();
}
}
catch (Exception ex)
{
Console.WriteLine("Hiba a konverzió során: " + ex.Message);
return new byte[0];
}
}
catch (Exception e)
{
Log.Error(e, "\nThere was an error setting the license: " + e.Message);
}
}
public static byte[] HtmlToDocx(string html)
{
byte[] generated = Encoding.UTF8.GetBytes(html);
var docHTML = new Aspose.Words.Document();
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(docHTML);
builder.InsertHtml(html);
docHTML.CompatibilityOptions.OptimizeFor(Aspose.Words.Settings.MsWordVersion.Word2016);
MemoryStream outStream = new MemoryStream();
docHTML.Save(outStream, Aspose.Words.SaveFormat.Docx);
generated = outStream.ToArray();
outStream.Dispose();
return generated;
}
public static byte[] HtmlToPdf(string html)
{
byte[] generated = Encoding.UTF8.GetBytes(html);
Stream inStream = new MemoryStream(generated);
var docHTML = new Aspose.Words.Document(inStream);
MemoryStream outStream = new MemoryStream();
docHTML.Save(outStream, Aspose.Words.SaveFormat.Pdf);
generated = outStream.ToArray();
inStream.Dispose();
outStream.Dispose();
return generated;
}
public static byte[] DocxToPdf(byte[] generated)
{
Stream inStream = new MemoryStream(generated);
var doc = new Aspose.Words.Document(inStream);
MemoryStream outStream = new MemoryStream();
doc.Save(outStream, Aspose.Words.SaveFormat.Pdf);
generated = outStream.ToArray();
inStream.Dispose();
outStream.Dispose();
return generated;
}
public static byte[] DocxToPdfForTopic(byte[] generated)
{
Stream inStream = new MemoryStream(generated);
var doc = new Aspose.Words.Document(inStream);
doc.Styles.DefaultFont.Name = "Times New Roman";
doc.Styles.DefaultFont.Size = 12;
var collection = doc.GetChildNodes(NodeType.Row, true);
foreach (Row row in collection)
{
row.RowFormat.Height = 40;
row.RowFormat.HeightRule = HeightRule.AtLeast;
}
MemoryStream outStream = new MemoryStream();
doc.Save(outStream, Aspose.Words.SaveFormat.Pdf);
generated = outStream.ToArray();
inStream.Dispose();
outStream.Dispose();
return generated;
}
}
}