/** * Checks whether {@code line} equals to 'trailer'. * @param line for check. * @return true, if line is equals tio 'trailer', otherwise false. */ public static boolean checkTrailer(ByteBuffer line) { if (Trailer.length > line.size()) return false; for (int i = 0; i < Trailer.length; i++) { if (Trailer[i] != line.get(i)) return false; } return true; }
/** * Checks whether {@code line} equals to 'trailer'. * @param line for check. * @return true, if line is equals tio 'trailer', otherwise false. */ public static boolean checkTrailer(ByteBuffer line) { if (Trailer.length > line.size()) return false; for (int i = 0; i < Trailer.length; i++) { if (Trailer[i] != line.get(i)) return false; } return true; }
protected void fixXref() throws IOException { fixedXref = true; PdfXrefTable xref = pdfDocument.getXref(); tokens.seek(0); ByteBuffer buffer = new ByteBuffer(24); PdfTokenizer lineTokeniser = new PdfTokenizer(new RandomAccessFileOrArray(new ReusableRandomAccessSource(buffer))); for (; ; ) { long pos = tokens.getPosition(); buffer.reset(); if (!tokens.readLineSegment(buffer, true)) // added boolean because of mailing list issue (17 Feb. 2014) break; if (buffer.get(0) >= '0' && buffer.get(0) <= '9') { int[] obj = PdfTokenizer.checkObjectStart(lineTokeniser); if (obj == null) continue; int num = obj[0]; int gen = obj[1]; PdfIndirectReference reference = xref.get(num); if (reference != null && reference.getGenNumber() == gen) { reference.fixOffset(pos); } } } }
if (!tokens.readLineSegment(buffer, true)) // added boolean because of mailing list issue (17 Feb. 2014) break; if (buffer.get(0) == 't') { if (!PdfTokenizer.checkTrailer(buffer)) continue; tokens.seek(pos); } else if (buffer.get(0) >= '0' && buffer.get(0) <= '9') { int[] obj = PdfTokenizer.checkObjectStart(lineTokeniser); if (obj == null)