diff --git a/src/EPPlus.Export.Pdf.Tests/App.config b/src/EPPlus.Export.Pdf.Tests/App.config new file mode 100644 index 000000000..bdad39023 --- /dev/null +++ b/src/EPPlus.Export.Pdf.Tests/App.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/EPPlus.Export.Pdf.Tests/EPPlus.Export.Pdf.Tests.csproj b/src/EPPlus.Export.Pdf.Tests/EPPlus.Export.Pdf.Tests.csproj index f1f6504fb..ab727dd81 100644 --- a/src/EPPlus.Export.Pdf.Tests/EPPlus.Export.Pdf.Tests.csproj +++ b/src/EPPlus.Export.Pdf.Tests/EPPlus.Export.Pdf.Tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net481;net8.0 latest enable True diff --git a/src/EPPlus.Export.Pdf/DocumentObjects/Fonts/PdfCIDFont.cs b/src/EPPlus.Export.Pdf/DocumentObjects/Fonts/PdfCIDFont.cs index f6f675cdf..569c24ba5 100644 --- a/src/EPPlus.Export.Pdf/DocumentObjects/Fonts/PdfCIDFont.cs +++ b/src/EPPlus.Export.Pdf/DocumentObjects/Fonts/PdfCIDFont.cs @@ -33,7 +33,7 @@ internal class PdfCIDFont : PdfObject private readonly CIDSystemInfo CIDInfoObject; private readonly int FontDescriptorObjectNumber; - private readonly int? DW; // Default width + private int? DW; // Default width private readonly List W; // Width array private readonly int[] DW2; // Default metrics for vertical writing (2 numbers) private readonly List W2; // Vertical writing metrics @@ -85,9 +85,9 @@ internal override string RenderDictionary() if (Subtype == CIDFontSubtype.CIDFontType2) { if(string.IsNullOrEmpty( CIDToGIDMap )) - sb.AppendFormat($"\n /CIDToGIDMap {CIDToGIDMap}"); - else sb.AppendFormat($"\n /CIDToGIDMap /Identity"); + else + sb.AppendFormat($"\n /CIDToGIDMap {CIDToGIDMap}"); } sb.Append(" >>"); return sb.ToString(); @@ -121,9 +121,9 @@ internal override void RenderDictionary(BinaryWriter bw) if (Subtype == CIDFontSubtype.CIDFontType2) { if (string.IsNullOrEmpty(CIDToGIDMap)) - sb.AppendFormat($"\n /CIDToGIDMap {CIDToGIDMap}"); - else sb.AppendFormat($"\n /CIDToGIDMap /Identity"); + else + sb.AppendFormat($"\n /CIDToGIDMap {CIDToGIDMap}"); } sb.Append(" >>"); WriteAscii(bw, sb.ToString()); diff --git a/src/EPPlus.Export.Pdf/DocumentObjects/PdfBorderRenderer.cs b/src/EPPlus.Export.Pdf/DocumentObjects/PdfBorderRenderer.cs index 0c385f71c..93492cbf2 100644 --- a/src/EPPlus.Export.Pdf/DocumentObjects/PdfBorderRenderer.cs +++ b/src/EPPlus.Export.Pdf/DocumentObjects/PdfBorderRenderer.cs @@ -18,17 +18,17 @@ namespace EPPlus.Export.Pdf.DocumentObjects { internal class PdfBorderRenderer { - private readonly PdfCellBorderData Top; - private readonly PdfCellBorderData Bottom; - private readonly PdfCellBorderData Left; - private readonly PdfCellBorderData Right; - private readonly PdfCellBorderData DiagonalUp; - private readonly PdfCellBorderData DiagonalDown; + private PdfCellBorderData Top; + private PdfCellBorderData Bottom; + private PdfCellBorderData Left; + private PdfCellBorderData Right; + private PdfCellBorderData DiagonalUp; + private PdfCellBorderData DiagonalDown; private readonly double X; private readonly double Y; private readonly string Name; private readonly bool IsMerged; - private readonly MergedCellDrawInfo info; + private MergedCellDrawInfo info; private readonly double Width; private readonly double Height; diff --git a/src/EPPlus/Export/PdfExport/TextMapping/PdfTextMap.cs b/src/EPPlus/Export/PdfExport/TextMapping/PdfTextMap.cs index 48ca92bee..e59f29aad 100644 --- a/src/EPPlus/Export/PdfExport/TextMapping/PdfTextMap.cs +++ b/src/EPPlus/Export/PdfExport/TextMapping/PdfTextMap.cs @@ -748,6 +748,7 @@ internal static PdfHeaderFooter GetTextFormats(PdfPageSettings pageSettings, Pdf /// The number of columns to add. internal static int AddColumnsForNonWrappedText(PdfPageSettings pageSettings, ExcelWorksheet ws, PdfWorksheet pdfSheet) { + if (ws.Dimension == null) return 0; //If dimension is null, there are no cells to check, so return 0. int columnsToAdd = 0; var catalog = new PdfCatalog(); var lastColumn = ws.Dimension.End.Column; diff --git a/src/EPPlusTest/Issues/ExportIssues.cs b/src/EPPlusTest/Issues/ExportIssues.cs index 7f1bf9b63..ed7a70f97 100644 --- a/src/EPPlusTest/Issues/ExportIssues.cs +++ b/src/EPPlusTest/Issues/ExportIssues.cs @@ -1,4 +1,5 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; +using OfficeOpenXml; using System; using System.Collections.Generic; using System.Linq; @@ -52,5 +53,15 @@ public void HtmlExportCRLFIssus2095() Assert.AreEqual(cell, "this\nis\na\nbug"); } } + [TestMethod] + public void GlyphPositioning_KerningAndMarkOffsets() + { + using var package = new ExcelPackage(); + var ws = package.Workbook.Worksheets.Add("Sheet1"); + ws.Cells["A1"].Value = "Test"; + ws.Cells["A1:A2"].AutoFitColumns(); + ws.SaveAsPdf(@"c:\epplusTest\Testoutput\GlyphPositioning.pdf"); + } + } }