This is the list of changelogs of Spire.PDF New release and hotfix. You can get the detail information of each version's new features and bug solutions.

Download Spire.PDF to start a free trial:

Hot Fix Version: 9.12

Category ID Description
Bug SPIREPDF-6041 Fixes the issue that the data on the second page and subsequent pages were lost after flattening PDF form fields.
Bug SPIREPDF-6331 Fixes the issue that PDFs converted from SVG couldn't be opened with Adobe.
Bug SPIREPDF-6351 Fixes the issue that the text could not be extracted.
Bug SPIREPDF-6375 Fixes the issue that highlight text function did not take effect.
Bug SPIREPDF-6384 Fixes the issue that the program threw "System.NullReferenceException" when converting OFD to PDF.
Bug SPIREPDF-6385
SPIREPDF-6390
Fixes the issue that the program threw "System.NullReferenceException" when loading PDF files.
Bug SPIREPDF-6393 Fixes the issue that the program threw "System.NullReferenceException" when printing PDF files as booklets.

Hot Fix Version: 9.11.4

Category ID Description
New feature - Adds the new PdfImageHelper interface for image extraction, deletion, replacement and compression.
Key code snippets are as follows:
// Delete image:
imageHelper.DeleteImage(imageInfos[0]);

// Extract images:
int index = 0;
foreach (PdfImageInfo info in imageInfos)
{
    info.Image.Save(outputFile_I + string.Format("Image-{0}.png", index));
    index++;
}

// Replace image:
PdfImage image = PdfImage.FromFile(TestUtil.DataPath + "ImgFiles/E-iceblue logo.png");
imageHelper.ReplaceImage(imageInfos[0], image);

// Compress images:
foreach (PdfPageBase page in doc.Pages)
{
    foreach (PdfImageInfo info in imageHelper.GetImagesInfo(page))
    {
        bool success = info.TryCompressImage();
    }
}
Bug SPIREPDF-5781 Fixes the issue that two columns of the extracted PDF table were merged into one.
Bug SPIREPDF-6225 Fixes the issue that the result document of XPS to PDF conversion was blank.
Bug SPIREPDF-6232 Fixes the issue that it popped up page error when opening PDF converted from XPS with Adobe tools.
Bug SPIREPDF-6355 Fixes the issue that extra characters appeared in the content after converting PDF to XPS.
Bug SPIREPDF-6361 Fixes the issue that the program threw an exception System.NullReferenceException when loading PDF documents.

Hot Fix Version: 9.11.0

Category ID Description
Bug SPIREPDF-6320 Improves the speed of converting PDF to images.
Bug SPIREPDF-4552 Fixes the issue that the extracted content from PDF was incorrect.
Bug SPIREPDF-5949 Fixes the issue that the resulting file became larger after splitting and merging PDFs.
Bug SPIREPDF-6017 Fixes the issue that the program crashed when converting PDF to SVG on Linux.
Bug SPIREPDF-6273 Fixes the issue that the table content extracted from PDF was incorrect.
Bug SPIREPDF-6301 Fixes the issue that the order of extracted table content was incorrect.
Bug SPIREPDF-6305 Fixes the issue that the text style changed after converting PDF to images.
Bug SPIREPDF-6308 Fixes the issue that documents could still be decrypted without entering a password.
Bug SPIREPDF-6309 Fixes the issue that the program threw an exception "System.NullReferenceException" when comparing and saving PDF
Bug SPIREPDF-6312 Fixes the issue that some content was unclear when printing PDF.
Bug SPIREPDF-6314 Fixes the issue that the program threw an exception "System.ArgumentOutOfRangeException" when converting PDF to SVG.
Bug SPIREPDF-6333 Fixes the issue that the program threw an exception "System.StackOverflowException" when converting PDF to images.
Bug SPIREPDF-6346 Fixes the issue that the program threw an exception "System.NullReferenceException" when extracting text.
Bug SPIREPDF-6348 Fixed an issue that tables were not recognized.

Hot Fix Version: 9.10.2

Category ID Description
New feature SPIREPDF-6153 Supports getting the text coordinates of multi-column text in reading order.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
PdfPageBase pdfPageBase = doc.Pages[0];
PdfTextFinder finder = new PdfTextFinder(pdfPageBase);
finder.Options.Strategy = PdfTextStrategy.Simple;
New feature SPIREPDF-6264 Supports setting the HorizontalScalingFactor property for PdfStringFormat.
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();
string text = "Please add the code picture BehindText=true to set the picture behind text";
PdfSolidBrush solidBrush = new PdfSolidBrush (new PdfRGBColor(Color.Black));
PdfStringFormat format = new PdfStringFormat():
format.HorizontalScalingFactor = 80;
PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 14f, PdfFontStyle.Regular);
PdfGraphicsState state = page.Canvas.Save();
page.Canvas.DrawString(text, font, solidBrush, 0, 0, format);
page.Canvas.Restore(state):
doc.SaveToFile(outputFile);
doc.Close();
New feature SPIREPDF-6285 Support setting whether to allow conversion when converting the PDF with permission password.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
doc.ConvertOptions.ApplyPermissionsOptions(true);
StringBuilder sb = new StringBuilder();
    foreach (FileFormat type in Enum.GetValues(typeof(FileFormat)))
        {
            try
                {
                    if (type.ToString().Equals("PDF"))
                    {
                        doc.SaveToFile(outputFile_P, type);
                    }
                    else
                    {
                        doc.SaveToFile(outputFile, type);
                    }
                }
                catch (Exception ex)
                {
                    sb.AppendLine("save to: "+ type +"  :"+ ex.Message);
                }
            }
File.AppendAllText(outputFile,sb.ToString());
doc.Dispose();
Bug SPIREPDF-5579 Fixes the issue that the extracted table data was not formatted correctly.
Bug SPIREPDF-6089 Fixes the issue that the output result was incorrect after setting cell spacing for a table.
Bug SPIREPDF-6244 Fixes the issue that filling the form fields of XFA's text box failed .
Bug SPIREPDF-6262 Fixes the issue that the program threw "System.IO.IOExceptions:Stream was too long" exception when merging PDF files.
Bug SPIREPDF-6268 Fixes the issue that fonts were applied incorrectly after filling the textbox field.
Bug SPIREPDF-6284 Fixes the issue that no permission password was requested when converting PDF with permission password to Word.
Bug SPIREPDF-6292 Fixes the issue that the program threw "System.NullReferenceException" exception when converting OFD to PDF files.
Bug SPIREPDF-6303 Fixes the issue that "new PdfGoToAction(partBookmarkDest)" did not work.

Hot Fix Version: 9.9.9

Category ID Description
Bug SPIREPDF-6130 Fixes the issue that the program threw "System.StackOverflowException" when converting PDF to images.
Bug SPIREPDF-6219 Fixes the issue that the program threw "System.ArgumentOutOfRangeException" when drawing HTML content.
Bug SPIREPDF-6229 Fixes the issue that the size of split document was incorrect.
Bug SPIREPDF-6245 Fixes the issue that the XFA checkbox form fields couldn't be filled.
Bug SPIREPDF-6254 Fixes the issue that the program threw "System.FormatException" when converting OFD to PDF.
Bug SPIREPDF-6259 Fixes the issue that a part of content lost when printing PDF files.
Bug SPIREPDF-6272 Fixes the issue that the FontSizeAuto property for textbox form fields was incorrect.

Hot Fix Version: 9.9.3

Category ID Description
New feature SPIREPDF-6199 Add a new method to determine if a document is encrypted without loading the document.
bool value = PdfDocument.IsPasswordProtected("1.pdf"); 
New feature SPIREPDF-6223 Supports setting margins when printing.
pdf.PrintSettings.SelectMultiPageLayout(2,2,false,Spire.Pdf.Print.PdfMultiPageOrder.Horizontal, marginValue)
Bug SPIREPDF-4391 Fixed the issue that some cells were split into two columns when converting PDF to Excel.
Bug SPIREPDF-6023 Fix the issue that setting the WholeWord property when searching for text caused the failure of highlighting text.
Bug SPIREPDF-6138 Fix the issue that text was lost when converting PDF to Word.
Bug SPIREPDF-6194 Fix the issue that the XML file failed to open in the result file after adding XML attachments to PDF files.
Bug SPIREPDF-6198 Fix the issue that the program threw an exception "System.ArgumentOutOfRangeException" when loading a compressed document.
Bug SPIREPDF-6201 Fix the issue that it failed to open the compressed document with PDF reader.
Bug SPIREPDF-6203 Fixed the issue that PDF converted to Word with permission password set (content copy and page extraction not allowed) did not request permission password.
Bug SPIREPDF-6204 Fixed the issue that characters were displayed incorrectly after converting PDF to POSTSCRIPT.
Bug SPIREPDF-6205 Fixed the issue that stamps were lost after converting OFD to PDF and images.
Bug SPIREPDF-6213 Fix the issue that the content was garbled after converting PDF to PDFA.
Bug SPIREPDF-6227 Fix the issue that the program threw an exception "System.IndexOutOfRangeException" when drawing a table.

Hot Fix Version: 9.8.5

Category ID Description
Bug SPIREPDF-1752 Fixed the issue that opening the result file in Adobe failed after creating an overlay.
Bug SPIREPDF-5146 Fixed the issue that the watermark was changed after decrypting a PDF file.
Bug SPIREPDF-5865
SPIREPDF-6114
Fixed the issue that finding cross-line text in a PDF file failed.
Bug SPIREPDF-6024 Fixed the issue that setting FitToPage and FitToHTML properties under PdfHtmlLayoutFormat didn't take effect.
Bug SPIREPDF-6140 Fixed the issue that printing the same PDF file multiple times resulted in increased file size and printing time.
Bug SPIREPDF-6150 Fixed the issue that the content orientation was incorrect when printing double-sided.
Bug SPIREPDF-6193 Fixed the issue that the application threw a "System.NullReferenceException" exception when adding attachments to a PDF file.

Hot Fix Version: 9.7.17

Category ID Description
New feature - Supports PDF documents text comparison function.
PdfDocument pdf1 = new PdfDocument(inputFile_1);
PdfDocument pdf2 = new PdfDocument(inputFile_2);
PdfComparer compare = new PdfComparer(pdf1, pdf2);
compare.Options.SetPageRanges(0, pdf1.Pages.Count - 1, 0, pdf2.Pages.Count - 1);
compare.Compare(outputFile);
Bug SPIREPDF-6113 Fixed the issue that it consumed excessive resource  when converting PDF to OFD.
Bug SPIREPDF-6129 Fixed the issue that the special European characters (ü, ä, ö) were displayed incorrectly when converting PDF to image and printing PDF files.
Bug SPIREPDF-6145 Fixed the issue that the program threw a null pointer exception when getting images.
Bug SPIREPDF-6155 Fixed the issue that there was an extra error message in the " Document Integrity Report. " after adding an invisible signature.
Bug SPIREPDF-6157 Fixed the issue that the program threw " System.Exception: Cannot create Graphics object from an image with an indexed pixel format " when extracting tables.

h3 style="margin-top: 25px;">Hot Fix Version: 9.7.14
Category ID Description
New feature SPIREPDF-3578 Supports retaining the same font name when converting PDF to Word.
PdfDocument doc = new PdfDocument();
//Add a new page
PdfPageBase page = doc.Pages.Add();
PdfGrid grid = new PdfGrid();
grid.Columns.Add(1);
PdfGridRow headerRow1 = grid.Headers.Add(1)[0];
//HEADER WITHOUT UNCICODE SUPPORT BUT VALID WORD FONT
headerRow1.Style.Font = new PdfTrueTypeFont(new Font("Arial", 11f, FontStyle.Regular), true);
headerRow1.Cells[0].Value = "Spire.PDF for .NET";
headerRow1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
grid.Draw(page, new PointF(0, 10));
//Save the document to stream
MemoryStream stream = new MemoryStream();
doc.SaveToStream(stream, FileFormat.PDF);
stream.Position = 0L;
PdfToWordConverter converter = new PdfToWordConverter(stream);
converter.SaveToDocx(@"out.docx");
New feature SPIREPDF-4092
SPIREPDF-5734
Supports setting encryption options with the new interface when encrypting PDF documents.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"in.pdf");           
PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy(userPassword, ownerPassword);
securityPolicy.EncryptMetadata = false;
securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_128;
securityPolicy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll;
securityPolicy.DocumentPrivilege.AllowPrint = false;
doc.Encrypt(securityPolicy);
doc.SaveToFile(@"out.pdf");
Bug SPIREPDF-2586 Fixes the issue that the content lost when converting PDF to image.
Bug SPIREPDF-6013 Fixes the issue that the table borders were thicker after printing PDF file.
Bug SPIREPDF-6057 Fixes the issue that it had prompt "cannot extract the embedded font" when opening the converted PDFA3B file.
Bug SPIREPDF-6072 Fixes the issue that the PDF page count obtained was incorrect when the file added an watermark.
Bug SPIREPDF-6080 Optimizes the memory consumption when converting PDF to image.
Bug SPIREPDF-6086 Fixes the issue that the application threw "System.NullReferenceException" when loading a PDF file.
Bug SPIREPDF-6088 Fixes the issue that the application threw "System.IndexOutOfRangeException" when loading a XPS file.
Bug SPIREPDF-6093 Fixes the issue that the result was black after converting PDF to image.
Bug SPIREPDF-6100 Fixes the issue that the application threw "System.NullReferenceException" when converting a PDF file to image.
Bug SPIREPDF-6126 Fixes the issue that the removing the Form field method didn't take effect.

Hot Fix Version: 9.7.0

Category ID Description
New feature SPIREPDF-5964 Supports creating labeled PDF files containing structured tables.
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(20));
page.SetTabOrder(TabOrder.Structure);
PdfTaggedContent taggedContent = new PdfTaggedContent(doc);
taggedContent.SetLanguage("en-US");
taggedContent.SetTitle("test");
taggedContent.SetPdfUA1Identification();
PdfTrueTypeFont font = new PdfTrueTypeFont(new System.Drawing.Font("Times New Roman", 14), true);
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStructureElement document = taggedContent.StructureTreeRoot.AppendChildElement(PdfStandardStructTypes.Document);
PdfStructureElement heading1 = document.AppendChildElement(PdfStandardStructTypes.HeadingLevel1);
heading1.BeginMarkedContent(page);
string headingText = "What is a Tagged PDF?";
page.Canvas.DrawString(headingText, font, brush, new PointF(0, 0));
heading1.EndMarkedContent(page);
PdfStructureElement paragraph = document.AppendChildElement(PdfStandardStructTypes.Paragraph);
paragraph.BeginMarkedContent(page);
string paragraphText = ""Tagged PDF" doesn’t seem like a life-changing term. But for some, it is. For people who are " +
    "blind or have low vision and use assistive technology (such as screen readers and connected Braille displays) to " +
    "access information, an untagged PDF means they are missing out on information contained in the document because assistive " +
    "technology cannot "read" untagged PDFs.  Digital accessibility has opened up so many avenues to information that were once " +
    "closed to people with visual disabilities, but PDFs often get left out of the equation.";
RectangleF rect = new RectangleF(0, 30, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
page.Canvas.DrawString(paragraphText, font, brush, rect);
paragraph.EndMarkedContent(page);
PdfStructureElement figure = document.AppendChildElement(PdfStandardStructTypes.Figure);
figure.BeginMarkedContent(page);
PdfImage image = PdfImage.FromFile(TestUtil.DataPath + "ImgFiles/Bug_3938.png");
page.Canvas.DrawImage(image, new PointF(0, 150));
figure.EndMarkedContent(page);

PdfStructureElement table = document.AppendChildElement(PdfStandardStructTypes.Table);
PdfTable pdfTable = new PdfTable();
pdfTable.Style.DefaultStyle.Font = font;
System.Data.DataTable dataTable = new System.Data.DataTable();
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Age");
dataTable.Columns.Add("Sex");
dataTable.Rows.Add(new string[] { "John", "22", "Male" });
dataTable.Rows.Add(new string[] { "Katty", "25", "Female" });
pdfTable.DataSource = dataTable;
pdfTable.Style.ShowHeader = true;
pdfTable.StructureElement = table;
pdfTable.Draw(page.Canvas, new PointF(0, 280), 300f);

doc.SaveToFile("1.pdf");
doc.Dispose();
New feature SPIREPDF-6038 Adds support for zoom level in fitting height.
PdfDocument myPdf = new PdfDocument("test.pdf");
PdfPageBase page = myPdf .Pages[0];
PdfDestination dest = new PdfDestination(page, new PointF(-40f, -40f));
dest.Mode = PdfDestinationMode.FitV; 
PdfGoToAction gotoaction = new PdfGoToAction(dest);
myPdf.AfterOpenAction = gotoaction;
myPdf.ViewerPreferences.PageMode = PdfPageMode.UseOutlines;
myPdf.SaveToFile("FitBH.pdf");
myPdf.Close(); 
Bug SPIREPDF-6011 Fixed the issue that an error System.NullReferenceException occurred when converting PDF to PDFA3A.
Bug SPIREPDF-6032 Fixed the issue that the content was incorrect when converting PDF to PDFA1B.
Bug SPIREPDF-6047 Fixed the issue that font changed when converting PDF to image and printing PDF.
Bug SPIREPDF-6051 Fixed the issue that an error System.NullReferenceException occurred when extracting page text.
Bug SPIREPDF-6076 Fixes the issue that stamps distorted out of shape when printing PDF.