Knowledgebase (2311)
Children categories
Converting a PDF to PCL (Printer Command Language) in C# can be an essential task for developers working with printing solutions. PCL is a well-established page description language used by many laser printers, and converting documents into this format allows for more efficient and accurate printing.
In this article, we will explore the process of converting PDFs to PCL format in C# using Spire.PDF for .NET, including batch conversion for processing multiple files efficiently.
- • Install Spire.PDF for .NET
- • How to Convert PDF to PCL in C#
- • Batch Conversion of PDF to PCL using C#
Install Spire.PDF for .NET
To get started, you’ll need to install the Spire.PDF for .NET library in your project. The easiest way to do this is via NuGet.
- 1.Open “NuGet Package Manager” in Visual Studio.
- 2.Search for “Spire.PDF” and install the package.
Alternatively, you can run the following command in the Package Manager Console:
PM> Install-Package Spire.PDF
How to Convert PDF to PCL in C#
Once the Spire.PDF library is installed, you're ready to start converting PDF documents into PCL. The classes and methods used for conversion are explained below:
- PdfDocument: This class represents the PDF document you're working with.
- LoadFromFile(): This method loads the PDF file into the PdfDocument object.
- SaveToFile(): This method saves the loaded PDF document in the specified format (PCL in this case).
Code Example:
- C#
using Spire.Pdf;
namespace PDFtoPCL
{
class Program
{
static void Main(string[] args)
{
// Create a PdfDocument instance
PdfDocument pdf = new PdfDocument();
// Load a PDF file
pdf.LoadFromFile("Input1.pdf");
// Save to PCL format
pdf.SaveToFile("PdfToPcl.pcl", FileFormat.PCL);
pdf.Close();
}
}
}

Batch Conversion of PDF to PCL using C#
If you need to convert a large number of PDF files in a folder, you can perform batch conversion by following the below steps and code:
- 1. Get all PDF files in a specified folder using the Directory.GetFiles() method.
- 2. Use foreach loop to iterate over each PDF file.
- 3. Load each PDF file into the PdfDocument object.
- 4. Generate the output PCL file path, and then convert the PDF to PCL.
Code Example:
- C#
using Spire.Pdf;
using System.IO;
namespace PDFtoPCL
{
class Program
{
static void Main(string[] args)
{
string pdfFolder = @"F:\PDFs\";
string pclFolder = @"F:\PCLs\";
// Get all PDF files in a folder
string[] pdfFiles = Directory.GetFiles(pdfFolder, "*.pdf");
// Iterate through each PDF file
foreach (string pdfFile in pdfFiles)
{
// Load the PDF file into the PdfDocument object
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(pdfFile);
// Define the file path and file name of the output PCL file
string outputFile = Path.Combine(pclFolder, Path.GetFileNameWithoutExtension(pdfFile) + ".pcl");
// Save PDF as PCL file
pdf.SaveToFile(outputFile, FileFormat.PCL);
pdf.Close();
}
}
}
}

Conclusion
With Spire.PDF for .NET, converting PDFs to PCL in C# becomes straightforward, whether you're handling individual files or bulk operations. Its robust API makes it an excellent choice for automating printing workflows or integrating conversion features into applications.
Get a Free License
To fully experience the capabilities of Spire.PDF for .NET without any evaluation limitations, you can request a free 30-day trial license.
PCL File is Digital printed document created in the Printer Command Language (more commonly referred to as PCL) page description language. From v7.1.19, Spire.Doc supports to convert word document to PCL. There are many kinds of standard for PCL document; the PCL here refers to PCL 6 (PCL 6 Enhanced or PCL XL). This article will show you how to save word document to PCL in C# and VB.NET by only three lines of codes.
using Spire.Doc;
namespace DOCPCL
{
class Program
{
static void Main(string[] args)
{
//load the sample document
Document doc = new Document();
doc.LoadFromFile("Sample.docx", FileFormat.Docx2010);
//save the document as a PCL file
doc.SaveToFile("Result.pcl", FileFormat.PCL);
}
}
}
Imports Spire.Doc
Namespace DOCPCL
Class Program
Private Shared Sub Main(args As String())
'load the sample document
Dim doc As New Document()
doc.LoadFromFile("Sample.docx", FileFormat.Docx2010)
'save the document as a PCL file
doc.SaveToFile("Result.pcl", FileFormat.PCL)
End Sub
End Class
End Namespace
The slide master in PowerPoint preserves some fixed styles, such as background image, title and theme color, which can be inherited by other slides. This article demonstrates how to customize the slide masters in a PowerPoint file and apply them to different slides using Spire.Presentation for Java.
Apply One Slide Master in PowerPoint
import com.spire.presentation.*;
import com.spire.presentation.drawing.BackgroundType;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
public class ModifyAndApplySlideMaster {
public static void main(String[] args) throws Exception {
//create a Presentation object and specify the slide size
Presentation presentation = new Presentation();
presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);
//get the first slide master
IMasterSlide masterSlide = presentation.getMasters().get(0);
//set the background image of the slide master
String backgroundPic = "C:/Users/Administrator/Desktop/bg.jpg";
BufferedImage image = ImageIO.read(new FileInputStream(backgroundPic));
IImageData imageData = presentation.getImages().append(image);
masterSlide.getSlideBackground().setType(BackgroundType.CUSTOM);
masterSlide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
masterSlide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
masterSlide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
//add an image (company logo) to slide master
String logo = "C:/Users/Administrator/Desktop/logo.png";
image = ImageIO.read(new FileInputStream(logo));
imageData = presentation.getImages().append(image);
IEmbedImage imageShape = masterSlide.getShapes().appendEmbedImage(ShapeType.RECTANGLE,imageData,new Rectangle2D.Float(40,40,200,60));
imageShape.getLine().setFillType(FillFormatType.NONE);
//add some text (company name) to slide master
IAutoShape textShape = masterSlide.getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle2D.Float((float) presentation.getSlideSize().getSize().getWidth()-200,(float) presentation.getSlideSize().getSize().getHeight()-60,200,30));//Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(ppt.SlideSize.Size.Width-200, ppt.SlideSize.Size.Height-60, 200, 30));
textShape.getTextFrame().setText("Chengdu E-iceblue Co., Ltd.");
textShape.getTextFrame().getTextRange().setFontHeight(15f);
textShape.getTextFrame().getTextRange().getFill().setFillType(FillFormatType.SOLID);
textShape.getTextFrame().getTextRange().getFill().getSolidColor().setColor(Color.blue);
textShape.getTextFrame().getTextRange().getParagraph().setAlignment(TextAlignmentType.CENTER);
textShape.getFill().setFillType(FillFormatType.NONE);
textShape.getLine().setFillType(FillFormatType.NONE);
//append a new slide
presentation.getSlides().append();
//save to file
presentation.saveToFile("ModifySlideMaster.pptx", FileFormat.PPTX_2013);
presentation.dispose();
}
}

Apply Multiple Slide Maters in PowerPoint
import com.spire.presentation.*;
import com.spire.presentation.drawing.BackgroundType;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
public class CreateAndApplyMultiSlideMasters {
public static void main(String[] args) throws Exception {
//create a Presentation object and specify the slide size
Presentation presentation = new Presentation();
presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);
//add four new slides to the presentation
for (int i = 0; i < 4; i++)
{
presentation.getSlides().append();
}
//get the first slide master
IMasterSlide first_master = presentation.getMasters().get(0);
//create another slide master based on the first one
presentation.getMasters().appendSlide(first_master);
IMasterSlide second_master = presentation.getMasters().get(1);
//set different background images for the two masters
String pic1 = "C:/Users/Administrator/Desktop/image1.png";
String pic2 = "C:/Users/Administrator/Desktop/image2.png";
BufferedImage image = ImageIO.read(new FileInputStream(pic1));
IImageData imageData = presentation.getImages().append(image);
first_master.getSlideBackground().setType(BackgroundType.CUSTOM);
first_master.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
first_master.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
first_master.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
image = ImageIO.read(new FileInputStream(pic2));
imageData = presentation.getImages().append(image);
second_master.getSlideBackground().setType(BackgroundType.CUSTOM);
second_master.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
second_master.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
second_master.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
//apply the first master along with the layout to the first slide
presentation.getSlides().get(0).setLayout(first_master.getLayouts().get(6));
//apply the second master along with the layout to the rest slides
for (int i = 1; i < presentation.getSlides().getCount(); i++)
{
presentation.getSlides().get(i).setLayout(second_master.getLayouts().get(6));
}
//save to file
presentation.saveToFile("ApplyMultiMasters.pptx", FileFormat.PPTX_2013);
presentation.dispose();
}
}
