using IronWord;
using IronWord.Models;
// Load docx
WordDocument doc = new WordDocument("document.docx");
// Add text
doc.AddText("Add text using IronWord");
// Export docx
doc.SaveAs("save_document.docx");
Die programmgesteuerte Konvertierung von Dokumenten ist in vielen Anwendungen zu einer unverzichtbaren Funktion geworden. Besonders in der Geschäftswelt ist die Umwandlung von Word-Dokumenten in PDF-Dateien eine Routineaufgabe. Zum Glück können Sie mit C# und Microsoft Interop Word-Dateien nahtlos in PDF-Dateien umwandeln. In diesem Tutorial wird der Prozess der programmgesteuerten Konvertierung von Word in PDF mithilfe von C&num erläutert;
Voraussetzungen
Bevor Sie sich in den Code stürzen, um .DOCX in PDF mit C# zu konvertieren, ist es wichtig, sicherzustellen, dass Sie die erforderliche Umgebung eingerichtet haben. Im Folgenden finden Sie die erforderlichen Voraussetzungen:
Microsoft Word-Installation
Stellen Sie sicher, dass Sie Microsoft Word auf Ihrem Computer installiert haben. Die Interop-Dienste nutzen die in Word integrierten Funktionen für die Konvertierung von Word-Dokumenten in PDF-Dateien.
Visual Studio
Eine Version von Visual Studio ist notwendig, um das C#-Programm zu erstellen, zu kompilieren und auszuführen. Wenn Sie Visual Studio noch nicht haben, können Sie die Community-Version, die kostenlos ist, von der offiziellen Website von Microsoft herunterladen.
Paket Microsoft.Office.Interop.Word installieren
Dieses Paket ist unerlässlich, um die notwendigen Funktionen für Ihr C#-Programm zur Interaktion mit Word-Dokumenten bereitzustellen. Es wird später mit dem NuGet Package Manager installiert, aber es ist gut zu wissen, wie wichtig es für den Konvertierungsprozess ist.
Word-Dokument zur Konvertierung
Bereiten Sie ein Word-Dokument oder eine .docx-Datei vor, die Sie konvertieren möchten. Stellen Sie sicher, dass Sie den Pfad auf Ihrem Rechner kennen, da Sie ihn im C#-Programm angeben müssen.
Ausreichende Berechtigungen
Stellen Sie sicher, dass Sie die Word-Datei lesen und die resultierende PDF-Datei in das gewünschte Verzeichnis schreiben können. Wenn Sie Visual Studio als Administrator ausführen, können Sie manchmal Probleme im Zusammenhang mit Berechtigungen lösen.
Mit diesen Voraussetzungen können Sie Ihre Umgebung einrichten und Ihre Word-Dokumente in PDF-Dateien umwandeln.
Einrichten der Umgebung
Öffnen Sie Ihr Visual Studio.
Erstellen Sie eine neue C#-Konsolenanwendung.
Gehen Sie zu NuGet-Paket-Manager > NuGet-Pakete für die Lösung verwalten.
Suche nach "Microsoft.Office.Interop.Word" und installiere es. Dieses Paket wird es unserer Anwendung ermöglichen, mit Word zu kommunizieren und Word-Dateien zu konvertieren.
![How to Convert Word to PDF in C#: Abbildung 1 - Öffnen Sie Visual Studio und erstellen Sie ein neues Konsolenanwendungsprojekt. Gehen Sie zu NuGet Package Manager > Manage Packages for Solution. Suchen Sie nach "Microsoft.Office.Interop.Word" und installieren Sie es. Dieses Paket wird unserer Konsolenanwendung helfen, mit Word zu interagieren und auch Word-Dateien zu konvertieren.
Beispielcode zum Konvertieren von Word-Dokumenten in PDF
Um ein Word-Dokument mit C# in PDF zu konvertieren, werden wir die Möglichkeiten der Microsoft Interop-Dienste nutzen. Das folgende Codeschnipsel erfüllt diese Aufgabe, und es folgt eine ausführliche Erklärung.
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
Imports System
Imports Word = Microsoft.Office.Interop.Word
Friend Class Program
Shared Sub Main()
Dim wordApp = New Word.Application()
Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")
Dim outputPath = "path_where_you_want_to_save_pdf.pdf"
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)
wordDocument.Close()
wordApp.Quit()
Console.WriteLine("Word document converted to PDF successfully!")
End Sub
End Class
$vbLabelText $csharpLabel
Code Erläuterung
Der Anfang unseres Codes enthält zwei wichtige Namespaces. Der System-Namespace stellt Klassen bereit, die grundlegend für die C#-Programmierung sind, und er ist ein Grundbestandteil in fast allen C#
Die eigentliche Aktion beginnt in der Main-Methode. Wir erstellen zunächst eine neue Instanz der Word-Anwendung mit new Word.Application(). Dieser Schritt ist vergleichbar mit dem Start von MS Word, aber alles geschieht im Hintergrund, unbemerkt vom Benutzer. Sobald die Anwendungsinstanz initialisiert ist, weisen wir sie an, ein Word-Dokument mit der Methode wordApp.Documents.Open zu öffnen. Die Angabe des Pfads zu Ihrem Word-Dokument anstelle von "path_to_your_word_file.docx" ist entscheidend.
Nachdem wir das Dokument geöffnet haben, legen wir fest, wo die PDF-Datei gespeichert werden soll. Dies wird in der Variable output path angegeben. Es ist wichtig zu beachten, dass der Pfad so angepasst werden sollte, dass sich Ihre konvertierte PDF-Datei an dem Ort befindet, an dem Sie sie haben möchten.
Die Magie der Umwandlung des Word-Dokuments in PDF geschieht mit der Zeile wordDocument.ExportAsFixedFormat(...). Die Interop-Dienste bieten eine integrierte Methode, die eine problemlose Konvertierung ermöglicht. Die Methode benötigt zwei Hauptargumente: den Pfad, in dem die PDF-Datei gespeichert werden soll, und das Exportformat, das in unserem Fall PDF ist.
Nach der Umwandlung ist es eine gute Praxis, die von uns verwendeten Ressourcen zu schließen. Daher stellt wordDocument.Close() sicher, dass das geöffnete Dokument nun geschlossen ist, während wordApp.Quit() sicherstellt, dass die im Hintergrund gestartete Instanz der Word-Anwendung beendet wird.
Zum Schluss teilt unser Programm dem Benutzer das Ergebnis in einer einfachen Konsolenmeldung mit. Die Methode Console.WriteLine() bietet eine Rückmeldung, die signalisiert, dass der Umwandlungsprozess erfolgreich ausgeführt wurde.
Somit bietet Microsoft.Office.Interop.Word eine geeignete Lösung zur Bearbeitung und Umwandlung von Word-Dokumenten.
Einführung von IronXL Eine überlegene Alternative zu Interop
Während Microsoft.Office.Interop eine praktikable Lösung für die Dokumentkonvertierung bietet, gibt es eine effizientere und robustere Alternative für die Arbeit mit Excel: IronXL.
IronXL vereinfacht den Umgang mit Excel-Dateien in C#. Es übertrifft Interop nicht nur in Bezug auf Geschwindigkeit und Benutzerfreundlichkeit, sondern erfordert auch keine zusätzlichen Installationen wie Microsoft Office. Möchten Sie mehr darüber erfahren? Schauen Sie sich ihr detailliertes Tutorial zu wie man Excel-Dateien mit C# liest an.
Die IronXL-Bibliothek kann mit dem folgenden Befehl in der NuGet Package Manager-Konsole installiert werden:
Install-Package IronWord
Dateitypen für Tabellenkalkulationen konvertieren
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
Imports IronXL
Imports System.IO
' Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls")
workBook.SaveAs("sample.xlsx")
workBook.SaveAs("sample.tsv")
workBook.SaveAsCsv("sample.csv")
workBook.SaveAsJson("sample.json")
workBook.SaveAsXml("sample.xml")
' Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html")
Dim htmlString As String = workBook.ExportToHtmlString()
' Export the excel file as Binary, Byte array, Data set, Stream
Dim binary() As Byte = workBook.ToBinary()
Dim byteArray() As Byte = workBook.ToByteArray()
Dim dataSet As System.Data.DataSet = workBook.ToDataSet() ' Allow easy integration with DataGrids, SQL and EF
Dim stream As Stream = workBook.ToStream()
$vbLabelText $csharpLabel
Wie im obigen Beispielcode gezeigt, hilft die IronXL-Bibliothek beim Lesen von Excel-Dateien, ohne Interop zu verwenden. Sie können die IronXL-Bibliothek weiter verwenden, um Ihre Arbeitsmappe zu laden und sie mit der SaveAs-Methode in verschiedene Formate wie XLS, XLSX, XLSM, CSV, TSV, JSON, XML zu exportieren. Es ermöglicht auch den Export von Datentypen wie HTML-Strings, Binärdateien, Byte-Arrays, Datensätzen und Speicherströmen direkt im Code.
Schlussfolgerung
In der heutigen digitalen Ära sind Dokumentenkonvertierungen, insbesondere Word-Dokumente zu PDF, für viele Anwendungen unverzichtbar geworden. Dies kann mit C# und den von Microsoft Interop bereitgestellten Funktionen erreicht werden.
Allerdings ist es wichtig, mit überlegenen Werkzeugen wie IronXL auf dem neuesten Stand zu bleiben, da es eine verbesserte Leistung bietet und den Prozess vereinfacht. Wenn Sie überlegen, IronXL auszuprobieren, bieten sie eine kostenlose Testversion an. Sobald Sie seine Leistungsfähigkeit erlebt haben, beginnt die Lizenzierung bei einem vernünftigen $749, bietet Wert für Ihre Investition und gewährleistet eine reibungslose Dokumentenverwaltung in Ihren Anwendungen.
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.
< PREVIOUS C# Word bearbeiten (Code-Beispiel Entwickler Tutorial)