This article demonstrates how to print different pages of a PDF document to different printer trays using Spire.PDF and c#.

Code snippets:

Step 1: Initialize an object of PdfDocument class and Load the PDF document.

PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"F:\sample.pdf");

Step 2: Set different printer trays for different pages of the document.

doc.PrintSettings.PaperSettings += delegate(object sender, PdfPaperSettingsEventArgs e)
{
    //Set the paper source of page 1-50 as tray 1
    if (1 <= e.CurrentPaper && e.CurrentPaper <= 50)
    {        
        e.CurrentPaperSource = e.PaperSources[0];
    }
    //Set the paper source of the rest of pages as tray 2
    else
    {
        e.CurrentPaperSource = e.PaperSources[1];
    }
};

Step 3: Print the document.

doc.Print();

Full code:

using Spire.Pdf;
using Spire.Pdf.Print;

namespace Print_pages_to_different_printer_trays
{
    class Program
    {
        static void Main(string[] args)
        {
            //Initialize an object of PdfDocument class
            PdfDocument doc = new PdfDocument();
            //Load the PDF document
            doc.LoadFromFile(@"F:\sample.pdf");

            //Set Paper source
            doc.PrintSettings.PaperSettings += delegate(object sender, PdfPaperSettingsEventArgs e)
            {
                //Set the paper source of page 1-50 as tray 1
                if (1 <= e.CurrentPaper && e.CurrentPaper <= 50)
                {
                    e.CurrentPaperSource = e.PaperSources[0];
                }
                //Set the paper source of the rest of pages as tray 2
                else
                {
                    e.CurrentPaperSource = e.PaperSources[1];
                }
            };
            //Print the document
            doc.Print();
        }
    }
}

A theme is a set of colors, fonts, and effects that determines the overall look of your Word document. Suppose you have a document which is neat and stylish, you’d like to copy contents of a section to another document without losing the theme and style. You can clone the theme to destination file using CloneThemeTo method.

Step 1: Create a Document object and load a sample Word file.

Document doc = new Document();
doc.LoadFromFile("theme.docx");

Step 2: Create a new Word document.

Document newWord = new Document();

Step 3: Clone default style, theme, compatibility from the source file to destination document.

doc.CloneDefaultStyleTo(newWord);
doc.CloneThemesTo(newWord);
doc.CloneCompatibilityTo(newWord);

Step 4: Add the cloned section to destination document.

newWord.Sections.Add(doc.Sections[0].Clone());

Step 5: Save the file.

newWord.SaveToFile("result.docx", FileFormat.Docx);

Output:

Preserve Theme When Copying Sections from One Word Document to Another in C#

Full Code:

Document doc = new Document();
doc.LoadFromFile("theme.docx");

Document newWord = new Document();     
doc.CloneDefaultStyleTo(newWord);
doc.CloneThemesTo(newWord);
doc.CloneCompatibilityTo(newWord);
newWord.Sections.Add(doc.Sections[0].Clone());

newWord.SaveToFile("result.docx", FileFormat.Docx);

We have already shown how to use Spire.Presentation to create the bubble chart in C# on the PowerPoint document. This article will demonstrate how to scale the size of bubble chart on the presentation slides in C#. We will use a 3-D bubble chart for example.

Step 1: Create a Presentation instance and load a sample document from the file.

Presentation ppt = new Presentation();
ppt.LoadFromFile("Sample.pptx", FileFormat.Pptx2010);

Step 2: Get the chart from the first presentation slide.

IChart chart = ppt.Slides[0].Shapes[0] as IChart;

Step 3: Scale the bubble size, the range value is from 0 to 300.

chart.BubbleScale = 50;

Step 4: Save the document to file.

ppt.SaveToFile("Scalesize.pptx", FileFormat.Pptx2010);

Effective screenshot of scale the bubble size:

C# Scale the size of bubble chart on the presentation slides

Full codes:

Presentation ppt = new Presentation();
ppt.LoadFromFile("Sample.pptx", FileFormat.Pptx2010);
IChart chart = ppt.Slides[0].Shapes[0] as IChart;
chart.BubbleScale = 50;
ppt.SaveToFile("Scalesize.pptx", FileFormat.Pptx2010);
Tuesday, 16 January 2018 08:10

Detect if a PDF file is PDF/A in C#

Spire.PDF provides developers two methods to detect if a PDF file is PDF/A. The one is to use PdfDocument.Conformance property, the other is to use PdfDocument.XmpMetaData property. The following examples demonstrate how we can detect if a PDF file is PDF/A using these two methods.

Below is the screenshot of the sample file we used for demonstration:

Detect if a PDF file is PDF/A in C#

Using PdfDocument.Conformance

//Initialize a PdfDocument object 
PdfDocument pdf = new PdfDocument();
//Load the PDF file
pdf.LoadFromFile("Example.pdf");

//Get the conformance level of the PDF file            
PdfConformanceLevel conformance = pdf.Conformance;
Console.WriteLine("This PDF file is " + conformance.ToString());

Output:

Detect if a PDF file is PDF/A in C#

Using PdfDocument.XmpMetaData

//Initialize a PdfDocument object
PdfDocument pdf = new PdfDocument();
//Load the PDF file
pdf.LoadFromFile("Example.pdf");

//Get the XMP MetaData of the file
XmpMetadata xmpData = pdf.XmpMetaData;

//Get the XMP MetaData in XML format
XmlDocument xmlData = xmpData.XmlData;
string s = xmlData.InnerXml;
Console.WriteLine(s);

Output:

From the following output, we can see there is an XML tag named pdfaid:part and another XML tag named pdfaid:conformance. The PDF/A specification indicates that pdfaid:part references the PDF/A version identifier, and pdfaid:conformance references the PDF/A conformance level (A or B in case of PDF/A-1). In this example, the PDF/A version is 1 and the PDF/A conformance level is A. That is to say, this file is PDF/A-1a.

Detect if a PDF file is PDF/A in C#

With Spire.PDF, programmers can extract text from a specific rectangular area within a PDF document. This article demonstrates how to implement this function using Spire.PDF and C#.

The sample file we used for demonstration:

Extract Text from a Specific Rectangular Area in PDF using C#

Detail steps:

Step 1: Initialize an object of PdfDocument class and load the PDF file.

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Stories.pdf");

Step 2: Get the first page.

PdfPageBase page = pdf.Pages[0];

Step 3: Extract text from a specific rectangular area within the page, after that save the text to a .txt file.

string text = page.ExtractText(new RectangleF(50, 50, 500, 100) );
StringBuilder sb = new StringBuilder();
sb.AppendLine(text);
File.WriteAllText("Extract.txt", sb.ToString());

Output:

Extract Text from a Specific Rectangular Area in PDF using C#

Full code:

//Initialize an object of PdfDocument class
PdfDocument pdf = new PdfDocument();
//Load the PDF file
pdf.LoadFromFile("Stories.pdf");

//Get the first page
PdfPageBase page = pdf.Pages[0];

// Extract text from a specific rectangular area within the page
string text = page.ExtractText(new RectangleF(50, 50, 500, 100) );

//Save the text to a .txt file
StringBuilder sb = new StringBuilder();
sb.AppendLine(text);
File.WriteAllText("Extract.txt", sb.ToString());
Tuesday, 09 January 2018 02:13

C# Activate a Worksheet

Activate a worksheet means clicking the worksheet's tab on MS Excel. Usually when we open the Excel workbook, it goes to the worksheet when we closed last time. With Spire.XLS, we can set a worksheet as active sheet in the workbook by using the sheet.Activate() method. Then when we open the excel workbook next time, it goes to the activate worksheet we set.

C# Code Snippet of how to activate a worksheet:

Step 1: Create an instance of Excel workbook and load the document from file.

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");

Step 2: Get the second worksheet from the workbook.

Worksheet sheet = workbook.Worksheets[1];

Step 3: Activate the sheet.

sheet.Activate();

Step 4: Save the document to file.

workbook.SaveToFile("result.xlsx",FileFormat.Version2013);   

Full codes:

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");

Worksheet sheet = workbook.Worksheets[1];  
                
sheet.Activate();
         
workbook.SaveToFile("result.xlsx",FileFormat.Version2013);    

With linked images, you can direct users to a URL when they click the image. This article will show you how to create image hyperlinks in a Word document by using Spire.Doc.

Step 1: Create a Word document, add a section and a paragraph.

Document doc = new Document();
Section section = doc.AddSection();
Paragraph paragraph = section.AddParagraph();

Step 2: Load an image to a DocPicture object.

DocPicture picture = new DocPicture(doc);
picture.LoadImage(Image.FromFile("logo.png"));

Step 3: Add an image hyperlink to the paragraph.

paragraph.AppendHyperlink("www.e-iceblue.com", picture, HyperlinkType.WebLink);

Step 4: Save the file.

doc.SaveToFile("output.docx", FileFormat.Docx);

Output:

Create an Image Hyperlink in Word in C#, VB.NET

Full Code:

[C#]
Document doc = new Document();
Section section = doc.AddSection();

Paragraph paragraph = section.AddParagraph();
Image image = Image.FromFile("logo.png");
DocPicture picture = new DocPicture(doc);
picture.LoadImage(image);
paragraph.AppendHyperlink("www.e-iceblue.com", picture, HyperlinkType.WebLink);

doc.SaveToFile("output.docx", FileFormat.Docx);
[VB.NET]
Document doc = New Document()
Dim section As Section = doc.AddSection()

Dim paragraph As Paragraph = section.AddParagraph()
Dim image As Image = Image.FromFile("logo.png")
Dim picture As DocPicture = New DocPicture(doc)
picture.LoadImage(image)
paragraph.AppendHyperlink("www.e-iceblue.com", picture, HyperlinkType.WebLink)
 
doc.SaveToFile("output.docx", FileFormat.Docx)
Wednesday, 03 January 2018 08:44

Get Text within a Bookmark in C#, VB.NET

Spire.Doc supports to retrieve, replace and delete bookmark content of a specified bookmark. This article will show you how we can get the plain text within a bookmark by using Spire.Doc with C# and VB.NET.

Step 1: Create a Document instance, and load a sample Word document.

Document doc = new Document();
doc.LoadFromFile("Bookmark.docx");

Step 2: Creates a BookmarkNavigator instance to access the bookmark.

BookmarksNavigator navigator = new BookmarksNavigator(doc);

Step 3: Locate a specific bookmark by bookmark name. Call the method GetBookmarkContent to get content within the bookmark.

navigator.MoveToBookmark("bookmark_1");
TextBodyPart textBodyPart = navigator.GetBookmarkContent();

Step 4: Iterate through the items in the bookmark content to get the plain, unformatted text of the bookmark.

string text = null;
foreach (var item in textBodyPart.BodyItems)
{
    if (item is Paragraph)
    {
        foreach (var childObject in (item as Paragraph).ChildObjects)
        {
            if (childObject is TextRange)
            {
                text += (childObject as TextRange).Text;
            }
        }
    }
}

Result:

Get Text within a Bookmark in C#, VB.NET

Full Code:

[C#]
Document doc = new Document();
doc.LoadFromFile("Bookmark.docx");

BookmarksNavigator navigator = new BookmarksNavigator(doc);
navigator.MoveToBookmark("bookmark_1");
TextBodyPart textBodyPart = navigator.GetBookmarkContent();

string text = null;
foreach (var item in textBodyPart.BodyItems)
{
    if (item is Paragraph)
    {
        foreach (var childObject in (item as Paragraph).ChildObjects)
        {
            if (childObject is TextRange)
            {
                text += (childObject as TextRange).Text;
            }
        }
    }
}
Console.WriteLine(text);
[VB.NET]
Document doc = New Document()
doc.LoadFromFile("Bookmark.docx")
 
Dim navigator As BookmarksNavigator = New BookmarksNavigator(doc)
navigator.MoveToBookmark("bookmark_1")
Dim textBodyPart As TextBodyPart = navigator.GetBookmarkContent()


Dim text As String = Nothing
Dim item As var
For Each item In textBodyPart.BodyItems
    If TypeOf item Is Paragraph Then
        Dim childObject As var
        For Each childObject in(item as Paragraph).ChildObjects
            If TypeOf childObject Is TextRange Then
                text += (childObject as TextRange).Text
            End If
        Next
    End If
Next
Console.WriteLine(text)
Wednesday, 03 January 2018 08:38

Delete shapes in an Excel Worksheet in C#

Spire.XLS supports to delete a specific shape as well as all shapes in an Excel worksheet. This article demonstrates how to use Spire.XLS to implement this function.

The example file we used for demonstration:

Delete shapes in an Excel Worksheet in C#

Detail steps:

Step 1: Initialize an object of Workbook class and load the Excel file.

Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xlsx");

Step 2: Get the first worksheet.

Worksheet sheet = workbook.Worksheets[0];

Step 3: Delete the first shape in the worksheet.

sheet.PrstGeomShapes[0].Remove();

To delete all shapes from the worksheet:

for (int i = sheet.PrstGeomShapes.Count-1; i >= 0; i--)
{
    sheet.PrstGeomShapes[i].Remove();
}

Step 4: Save the file.

workbook.SaveToFile("DeleteShape.xlsx", ExcelVersion.Version2013);

Screenshot:

Delete shapes in an Excel Worksheet in C#

Full code:

//Initialize an object of Workbook class
Workbook workbook = new Workbook();
//Load the Excel file
workbook.LoadFromFile("Input.xlsx");

//Get the first worksheet
Worksheet sheet = workbook.Worksheets[0];

//Delete the first shape in the worksheet
sheet.PrstGeomShapes[0].Remove();
            
//Delete all shapes in the worksheet
//for (int i = sheet.PrstGeomShapes.Count-1; i >= 0; i--)
//{
//    sheet.PrstGeomShapes[i].Remove();
//}

workbook.SaveToFile("DeleteShape.xlsx", ExcelVersion.Version2013);

With the help of Spire.Presentation, we can easily set the border type and color of a whole table on the presentation slides. This article will focus on demonstrating how to set the border for the table in C#.

Firstly, view the 12 border types for the table on PowerPoint file:

Set the border type and color for the table on Presentation slides

How to set the border type and color for an existing table on presentation slide:

//create a presentation document and load the file from disk
Presentation presentation = new Presentation();
presentation.LoadFromFile("Sample.pptx");

//get the table from the first slide of the sample document
ISlide slide = presentation.Slides[0];
ITable table = slide.Shapes[1] as ITable;
     
//set the border type as Inside and the border color as blue
table.SetTableBorder(TableBorderType.Inside, 1, Color.Blue);

//save the document to file
presentation.SaveToFile("Insideborder.pptx", FileFormat.Pptx2010);

Effective screenshot after set the border type for an existing table on presentation slide:

Set the border type and color for the table on Presentation slides

How to set the border type and color for newly added tables on presentation slide:

//create a presentation document 
Presentation presentation = new Presentation();

//set the table width and height for each table cell
double[] tableWidth = new double[] { 100, 100, 100, 100, 100 };
double[] tableHeight = new double[] { 20, 20 };

//traverse all the border type of the table
foreach (TableBorderType item in Enum.GetValues(typeof(TableBorderType)))

//add a table to the presentation slide with the setting width and height
{ ITable itable = presentation.Slides.Append().Shapes.AppendTable(100, 100, tableWidth, tableHeight); 

//add some text to the table cell
itable.TableRows[0][0].TextFrame.Text = "Row";
itable.TableRows[1][0].TextFrame.Text = "Column"; 

//set the border type, border width and the border color for the table
itable.SetTableBorder(item, 1.5, Color.Red); 

}

//save the document to file
presentation.SaveToFile("Addtablewithborder.pptx", FileFormat.Pptx2010);

Set the border type and color for the table on Presentation slides