You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2022/08/28 06:58:15 UTC
svn commit: r1903716 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java
Author: tilman
Date: Sun Aug 28 06:58:15 2022
New Revision: 1903716
URL: http://svn.apache.org/viewvc?rev=1903716&view=rev
Log:
PDFBOX-4892: optimize, as suggested by Valery Bokov
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java?rev=1903716&r1=1903715&r2=1903716&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Embedder.java Sun Aug 28 06:58:15 2022
@@ -238,23 +238,22 @@ final class PDCIDFontType2Embedder exten
private void buildCIDToGIDMap(Map<Integer, Integer> cidToGid) throws IOException
{
- ByteArrayOutputStream out = new ByteArrayOutputStream();
int cidMax = Collections.max(cidToGid.keySet());
+ byte buffer[] = new byte[cidMax * 2 + 2];
+ int bi = 0;
for (int i = 0; i <= cidMax; i++)
{
- int gid;
- if (cidToGid.containsKey(i))
+ Integer gid = cidToGid.get(i);
+ if (gid != null)
{
- gid = cidToGid.get(i);
+ buffer[bi] = (byte) (gid >> 8 & 0xff);
+ buffer[bi+1] = (byte) (gid & 0xff);
}
- else
- {
- gid = 0;
- }
- out.write(new byte[] { (byte)(gid >> 8 & 0xff), (byte)(gid & 0xff) });
+ // else keep 0 initialization
+ bi += 2;
}
- InputStream input = new ByteArrayInputStream(out.toByteArray());
+ InputStream input = new ByteArrayInputStream(buffer);
PDStream stream = new PDStream(document, input, COSName.FLATE_DECODE);
cidFont.setItem(COSName.CID_TO_GID_MAP, stream);