Как конвертировать Word в TIFF на C#

Преобразование Word в TIFF может быть полезно в различных ситуациях. Файлы TIFF отличаются высоким качеством и широкой поддержкой, что делает их универсальными для обмена документами. Это может быть полезно, если документ необходимо включить в другое приложение или рабочий процесс, требующий файлов на основе изображений.
В этом посте я расскажу о том, как конвертировать Word в TIFF с помощью C# и библиотеки Spire.Doc for .NET.
Установите библиотеку
Это решение опирается на Spire.Doc for .NET, которая представляет собой библиотеку C# для создания, чтения и обработки документов Word. Библиотеку можно установить через NuGet с помощью следующей команды.
PM> Install-Package Spire.Doc
Преобразование Word в TIFF в C#
Spire.Doc предоставляет метод Document.SaveToImages(), который позволяет разработчикам преобразовать весь документ в массив изображений. Впоследствии эти отдельные изображения могут быть объединены в одно TIFF-изображение с помощью встроенной библиотеки .NET.
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using System.Drawing.Imaging;
namespace WordToTiff
{
class Program
{
static void Main(string[] args)
{
// Create a Document object
Document doc = new Document();
// Load a Word document
doc.LoadFromFile("C:\Users\Administrator\Desktop\input.docx");
// Convert the whole document to images
Image[] images = doc.SaveToImages(ImageType.Bitmap);
// Convert multiple images into a TIFF file
ConvertImagesToTiff(images, «ToTiff.tiff», EncoderValue.CompressionLZW);
// Dispose resource
doc.Dispose();
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
// Get the image encoders
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for (int j = 0; j < encoders.Length; j++)
{
// Find the encoder that matches the specified MIME type
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
throw new Exception(mimeType + " mime type not found in ImageCodecInfo");
}
public static void ConvertImagesToTiff(Image[] images, string outFile, EncoderValue compressEncoder)
{
// Set the encoder parameters
Encoder enc = Encoder.SaveFlag;
EncoderParameters ep = new EncoderParameters(2);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);
// Get the first image
Image pages = images[0];
// Create a variable
int frame = 0;
// Get an ImageCodecInfo object for processing TIFF image codec information
ImageCodecInfo info = GetEncoderInfo("image/tiff");
// Iterate through each Image
foreach (Image img in images)
{
// If it’s the first frame, save it to the output file with specified encoder parameters
if (frame == 0)
{
pages = img;
pages.Save(outFile, info, ep);
}
else
{
// Save the intermediate frames
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
pages.SaveAdd(img, ep);
}
// If it’s the last frame, flush the encoder parameters and close the file
if (frame == images.Length — 1)
{
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
pages.SaveAdd(ep);
}
frame++;
}
}
}
}
См. Также
Spire.Doc — это всеобъемлющая библиотека, поддерживающая различные действия с документами Word. Вы можете использовать его:
Конвертировать Word в XPS # на языке C