Конвертирование Excel в PDF в памяти на C# и .NET
Полный код
using System;
using System.IO;
using SautinSoft;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
//ConvertExcelAsByteArray();
ConvertExcelAsMemoryStream();
}
public static void ConvertExcelAsByteArray()
{
// Before starting, we recommend to get a free 100-day key:
// https://sautinsoft.com/start-for-free/
// Apply the key here:
// SautinSoft.ExcelToPdf.SetLicense("...");
// Convert Excel to PDF in memory
ExcelToPdf x = new ExcelToPdf();
// Set PDF as output format.
x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf;
string excelFile = Path.GetFullPath(@"..\..\..\test.xlsx");
string pdfFile = Path.ChangeExtension(excelFile, ".pdf"); ;
byte[] excelBytes = File.ReadAllBytes(excelFile);
byte[] pdfBytes = null;
try
{
pdfBytes = x.ConvertBytes(excelBytes);
// Save pdfBytes to a file for demonstration purposes.
File.WriteAllBytes(pdfFile, pdfBytes);
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfFile) { UseShellExecute = true });
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
public static void ConvertExcelAsMemoryStream()
{
// Before starting, we recommend to get a free 100-day key:
// https://sautinsoft.com/start-for-free/
// Apply the key here:
// SautinSoft.ExcelToPdf.SetLicense("...");
// Convert Excel to PDF in memory
ExcelToPdf x = new ExcelToPdf();
// Set PDF as output format.
x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf;
string excelFile = Path.GetFullPath(@"..\..\..\test.xlsx");
string pdfFile = Path.ChangeExtension(excelFile, ".pdf");
byte[] pdfBytes = null;
try
{
// Let us say, we have a memory stream with Excel data.
using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(excelFile)))
{
pdfBytes = x.ConvertBytes(ms.ToArray());
}
// Save pdfBytes to a file for demonstration purposes.
File.WriteAllBytes(pdfFile, pdfBytes);
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfFile) { UseShellExecute = true });
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
}
}
Imports System
Imports System.IO
Imports SautinSoft
Module Sample
Sub Main()
ConvertExcelAsByteArray()
'ConvertExcelAsMemoryStream()
End Sub
Public Sub ConvertExcelAsByteArray()
' Before starting, we recommend to get a free 100-day key:
' https://sautinsoft.com/start-for-free/
' Apply the key here:
' SautinSoft.ExcelToPdf.SetLicense("...");
' Convert Excel to PDF in memory
Dim x As New ExcelToPdf()
' Set PDF as output format.
x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf
Dim excelFile As String = Path.GetFullPath("..\..\..\test.xlsx")
Dim pdfFile As String = Path.ChangeExtension(excelFile, ".pdf")
Dim excelBytes() As Byte = File.ReadAllBytes(excelFile)
Dim pdfBytes() As Byte = Nothing
Try
pdfBytes = x.ConvertBytes(excelBytes)
' Save pdfBytes to a file for demonstration purposes.
File.WriteAllBytes(pdfFile, pdfBytes)
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfFile) With {.UseShellExecute = True})
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try
End Sub
Public Sub ConvertExcelAsMemoryStream()
' Before starting, we recommend to get a free 100-day key:
' https://sautinsoft.com/start-for-free/
' Apply the key here:
' SautinSoft.ExcelToPdf.SetLicense("...");
' Convert Excel to PDF in memory
Dim x As New ExcelToPdf()
' Set PDF as output format.
x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf
Dim excelFile As String = Path.GetFullPath("..\..\..\test.xlsx")
Dim pdfFile As String = Path.ChangeExtension(excelFile, ".pdf")
Dim pdfBytes() As Byte = Nothing
Try
' Let us say, we have a memory stream with Excel data.
Using ms As New MemoryStream(File.ReadAllBytes(excelFile))
pdfBytes = x.ConvertBytes(ms.ToArray())
End Using
' Save pdfBytes to a file for demonstration purposes.
File.WriteAllBytes(pdfFile, pdfBytes)
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfFile) With {.UseShellExecute = True})
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try
End Sub
End Module
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: