| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkPDFCatalog.h" | 10 #include "SkPDFCatalog.h" |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 | 184 |
| 185 for (int i = 0; i < fOtherPageResources->count(); i++) { | 185 for (int i = 0; i < fOtherPageResources->count(); i++) { |
| 186 fileOffset += SkToOffT(fCatalog->setFileOffset((*fOtherPageResources
)[i], fileOffset)); | 186 fileOffset += SkToOffT(fCatalog->setFileOffset((*fOtherPageResources
)[i], fileOffset)); |
| 187 } | 187 } |
| 188 | 188 |
| 189 fileOffset += fCatalog->setSubstituteResourcesOffsets(fileOffset, false)
; | 189 fileOffset += fCatalog->setSubstituteResourcesOffsets(fileOffset, false)
; |
| 190 fXRefFileOffset = fileOffset; | 190 fXRefFileOffset = fileOffset; |
| 191 } | 191 } |
| 192 | 192 |
| 193 emitHeader(stream); | 193 emitHeader(stream); |
| 194 fDocCatalog->emitObject(stream, fCatalog.get(), true); | 194 fDocCatalog->emitIndirectObject(stream, fCatalog.get()); |
| 195 fPages[0]->emitObject(stream, fCatalog.get(), true); | 195 fPages[0]->emitIndirectObject(stream, fCatalog.get()); |
| 196 fPages[0]->emitPage(stream, fCatalog.get()); | 196 fPages[0]->emitPage(stream, fCatalog.get()); |
| 197 for (int i = 0; i < fFirstPageResources->count(); i++) { | 197 for (int i = 0; i < fFirstPageResources->count(); i++) { |
| 198 (*fFirstPageResources)[i]->emit(stream, fCatalog.get(), true); | 198 (*fFirstPageResources)[i]->emit(stream, fCatalog.get(), true); |
| 199 } | 199 } |
| 200 fCatalog->emitSubstituteResources(stream, true); | 200 fCatalog->emitSubstituteResources(stream, true); |
| 201 // TODO(vandebo): Support linearized format | 201 // TODO(vandebo): Support linearized format |
| 202 // if (fPages.size() > 1) { | 202 // if (fPages.size() > 1) { |
| 203 // // TODO(vandebo): Save the file offset for the first page xref table. | 203 // // TODO(vandebo): Save the file offset for the first page xref table. |
| 204 // fCatalog->emitXrefTable(stream, true); | 204 // fCatalog->emitXrefTable(stream, true); |
| 205 // } | 205 // } |
| 206 | 206 |
| 207 for (int i = 0; i < fPageTree.count(); i++) { | 207 for (int i = 0; i < fPageTree.count(); i++) { |
| 208 fPageTree[i]->emitObject(stream, fCatalog.get(), true); | 208 fPageTree[i]->emitIndirectObject(stream, fCatalog.get()); |
| 209 } | 209 } |
| 210 | 210 |
| 211 for (int i = 1; i < fPages.count(); i++) { | 211 for (int i = 1; i < fPages.count(); i++) { |
| 212 fPages[i]->emitPage(stream, fCatalog.get()); | 212 fPages[i]->emitPage(stream, fCatalog.get()); |
| 213 } | 213 } |
| 214 | 214 |
| 215 for (int i = 0; i < fOtherPageResources->count(); i++) { | 215 for (int i = 0; i < fOtherPageResources->count(); i++) { |
| 216 (*fOtherPageResources)[i]->emit(stream, fCatalog.get(), true); | 216 (*fOtherPageResources)[i]->emit(stream, fCatalog.get(), true); |
| 217 } | 217 } |
| 218 | 218 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 if (NULL == fTrailerDict) { | 333 if (NULL == fTrailerDict) { |
| 334 fTrailerDict = SkNEW(SkPDFDict); | 334 fTrailerDict = SkNEW(SkPDFDict); |
| 335 | 335 |
| 336 // TODO(vandebo): Linearized format will take a Prev entry too. | 336 // TODO(vandebo): Linearized format will take a Prev entry too. |
| 337 // TODO(vandebo): PDF/A requires an ID entry. | 337 // TODO(vandebo): PDF/A requires an ID entry. |
| 338 fTrailerDict->insertInt("Size", int(objCount)); | 338 fTrailerDict->insertInt("Size", int(objCount)); |
| 339 fTrailerDict->insert("Root", new SkPDFObjRef(fDocCatalog))->unref(); | 339 fTrailerDict->insert("Root", new SkPDFObjRef(fDocCatalog))->unref(); |
| 340 } | 340 } |
| 341 | 341 |
| 342 stream->writeText("trailer\n"); | 342 stream->writeText("trailer\n"); |
| 343 fTrailerDict->emitObject(stream, fCatalog.get(), false); | 343 fTrailerDict->emitObject(stream, fCatalog.get()); |
| 344 stream->writeText("\nstartxref\n"); | 344 stream->writeText("\nstartxref\n"); |
| 345 stream->writeBigDecAsText(fXRefFileOffset); | 345 stream->writeBigDecAsText(fXRefFileOffset); |
| 346 stream->writeText("\n%%EOF"); | 346 stream->writeText("\n%%EOF"); |
| 347 } | 347 } |
| OLD | NEW |