draft-iab-rfc-use-of-pdf-02.txt | draft-iab-rfc-use-of-pdf-latest.txt | |||
---|---|---|---|---|
Network Working Group T. Hansen, Ed. | Network Working Group T. Hansen, Ed. | |||
Internet-Draft AT&T Laboratories | Internet-Draft AT&T Laboratories | |||
Intended status: Informational L. Masinter | Intended status: Informational L. Masinter | |||
Expires: November 18, 2016 M. Hardy | Expires: January 7, 2025 M. Hardy | |||
Adobe | Adobe | |||
May 17, 2016 | July 6, 2024 | |||
PDF for an RFC Series Output Document Format | PDF for an RFC Series Output Document Format | |||
draft-iab-rfc-use-of-pdf-02 | draft-iab-rfc-use-of-pdf-latest | |||
Abstract | Abstract | |||
This document discusses options and requirements for the PDF | This document discusses options and requirements for the PDF | |||
rendering of RFCs in the RFC Series, as outlined in RFC 6949. It | rendering of RFCs in the RFC Series, as outlined in RFC 6949. It | |||
also discusses the use of PDF for Internet-Drafts, and available or | also discusses the use of PDF for Internet-Drafts, and available or | |||
needed software tools for producing and working with PDF. | needed software tools for producing and working with PDF. | |||
Status of this Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 18, 2016. | This Internet-Draft will expire on January 7, 2025. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Choosing PDF versions and Standards . . . . . . . . . . . . . 3 | 2. Choosing PDF versions and Standards . . . . . . . . . . . . . 3 | |||
3. Options and Requirements for PDF RFCs . . . . . . . . . . . . 4 | 3. Options and Requirements for PDF RFCs . . . . . . . . . . . . 4 | |||
3.1. "Visible" Requirements . . . . . . . . . . . . . . . . . . 4 | 3.1. "Visible" Requirements . . . . . . . . . . . . . . . . . 4 | |||
3.1.1. General Visible Requirements . . . . . . . . . . . . . 4 | 3.1.1. General Visible Requirements . . . . . . . . . . . . 5 | |||
3.1.2. Page Size, Margins . . . . . . . . . . . . . . . . . . 5 | 3.1.2. Page Size, Margins . . . . . . . . . . . . . . . . . 5 | |||
3.1.3. Headers and Footers . . . . . . . . . . . . . . . . . 5 | 3.1.3. Headers and Footers . . . . . . . . . . . . . . . . . 5 | |||
3.1.4. Paragraph Numbering . . . . . . . . . . . . . . . . . 5 | 3.1.4. Paragraph Numbering . . . . . . . . . . . . . . . . . 5 | |||
3.1.5. Paged Content Layout . . . . . . . . . . . . . . . . . 6 | 3.1.5. Paged Content Layout . . . . . . . . . . . . . . . . 6 | |||
3.1.6. Typeface Choices . . . . . . . . . . . . . . . . . . . 6 | 3.1.6. Typeface Choices . . . . . . . . . . . . . . . . . . 6 | |||
3.1.7. Hyphenation and Line Breaks . . . . . . . . . . . . . 7 | 3.1.7. Hyphenation and Line Breaks . . . . . . . . . . . . . 7 | |||
3.1.8. Hyperlinks . . . . . . . . . . . . . . . . . . . . . . 7 | 3.1.8. Hyperlinks . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1.9. Similarity to Other Outputs . . . . . . . . . . . . . 8 | 3.1.9. Similarity to Other Outputs . . . . . . . . . . . . . 8 | |||
3.2. "Invisible" Options and Requirements . . . . . . . . . . . 9 | 3.2. "Invisible" Options and Requirements . . . . . . . . . . 10 | |||
3.2.1. Internal Text Representation . . . . . . . . . . . . . 9 | 3.2.1. Internal Text Representation . . . . . . . . . . . . 10 | |||
3.2.2. Unicode Support . . . . . . . . . . . . . . . . . . . 10 | 3.2.2. Unicode Support . . . . . . . . . . . . . . . . . . . 11 | |||
3.2.3. Image Processing (Artwork) . . . . . . . . . . . . . . 10 | 3.2.3. Image Processing (Artwork) . . . . . . . . . . . . . 11 | |||
3.2.4. Text Description of Images (Alt-Text) . . . . . . . . 10 | 3.2.4. Text Description of Images (Alt-Text) . . . . . . . . 11 | |||
3.2.5. Metadata Support . . . . . . . . . . . . . . . . . . . 11 | 3.2.5. Metadata Support . . . . . . . . . . . . . . . . . . 12 | |||
3.2.6. Document Structure Support . . . . . . . . . . . . . . 11 | 3.2.6. Document Structure Support . . . . . . . . . . . . . 12 | |||
3.2.7. Embedded Files . . . . . . . . . . . . . . . . . . . . 11 | 3.2.7. Embedded Files . . . . . . . . . . . . . . . . . . . 12 | |||
3.3. Digital Signatures . . . . . . . . . . . . . . . . . . . . 12 | 3.3. Digital Signatures . . . . . . . . . . . . . . . . . . . 13 | |||
4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
4.1. References . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4.1. References . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
4.2. Informative References . . . . . . . . . . . . . . . . . . 13 | 4.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
Appendix A. History and Current Use of PDF with RFCs and | Appendix A. History and Current Use of PDF with RFCs and | |||
Internet-Drafts . . . . . . . . . . . . . . . . . . . 14 | Internet-Drafts . . . . . . . . . . . . . . . . . . 16 | |||
A.1. RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | A.1. RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
A.2. Internet-Drafts . . . . . . . . . . . . . . . . . . . . . 14 | A.2. Internet-Drafts . . . . . . . . . . . . . . . . . . . . . 16 | |||
Appendix B. Paged Content Layout Quality . . . . . . . . . . . . 15 | Appendix B. Paged Content Layout Quality . . . . . . . . . . . . 16 | |||
Appendix C. Tooling . . . . . . . . . . . . . . . . . . . . . . . 15 | Appendix C. Tooling . . . . . . . . . . . . . . . . . . . . . . 17 | |||
C.1. PDF Viewers . . . . . . . . . . . . . . . . . . . . . . . 15 | C.1. PDF Viewers . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
C.2. Printers . . . . . . . . . . . . . . . . . . . . . . . . . 16 | C.2. Printers . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
C.3. PDF Generation Libraries . . . . . . . . . . . . . . . . . 16 | C.3. PDF Generation Libraries . . . . . . . . . . . . . . . . 18 | |||
C.4. Typefaces . . . . . . . . . . . . . . . . . . . . . . . . 16 | C.4. Typefaces . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
C.5. Other Tools . . . . . . . . . . . . . . . . . . . . . . . 16 | C.5. Other Tools . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
Appendix D. Acknowledgements . . . . . . . . . . . . . . . . . . 17 | Appendix D. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
1. Introduction | 1. Introduction | |||
The RFC Series is evolving, as outlined in [RFC6949]. Future | The RFC Series is evolving, as outlined in [RFC6949]. Future | |||
documents will use a canonical format, XML, with renderings in | documents will use a canonical format, XML, with renderings in | |||
various formats, including PDF. | various formats, including PDF. | |||
Because PDF has a wide range of capabilities and alternatives, not | Because PDF has a wide range of capabilities and alternatives, not | |||
all PDFs are "equal". For example, visually similar documents could | all PDFs are "equal". For example, visually similar documents could | |||
consist of scanned or rasterized images, or include text layout | consist of scanned or rasterized images, or include text layout | |||
skipping to change at page 9, line 33 ¶ | skipping to change at page 10, line 16 ¶ | |||
PDF offers a number of features which improve the utility of PDF | PDF offers a number of features which improve the utility of PDF | |||
files in a variety of workflows, at the cost of extra effort in the | files in a variety of workflows, at the cost of extra effort in the | |||
xml2rfc conversion process; the tradeoffs may be different for the | xml2rfc conversion process; the tradeoffs may be different for the | |||
RFC editor production of RFCs and for Internet-Drafts. | RFC editor production of RFCs and for Internet-Drafts. | |||
3.2.1. Internal Text Representation | 3.2.1. Internal Text Representation | |||
The contents of a PDF file can be represented in many ways. The PDF | The contents of a PDF file can be represented in many ways. The PDF | |||
file could be generated: | file could be generated: | |||
o as an image of the visual representation, such as a JPEG image of | o as an image of the visual representation, such as a JPEG image of | |||
the word "IETF". That is, there might be no internal | the word "IETF". That is, there might be no internal | |||
representation of letters, words or paragraphs at all. | representation of letters, words or paragraphs at all. | |||
o placing individual characters in position on the page, such as | o placing individual characters in position on the page, such as | |||
saying "put an 'F' here", then "put an 'T' before it", then "put | saying "put an 'F' here", then "put an 'T' before it", then "put | |||
an 'E' before that", then "put an 'I' before that" to render the | an 'E' before that", then "put an 'I' before that" to render the | |||
word "IETF". That is, there might be no internal representation | word "IETF". That is, there might be no internal representation | |||
of words or paragraphs at all. | of words or paragraphs at all. | |||
o placing words in position on the page, such as keeping the word | o placing words in position on the page, such as keeping the word | |||
"IETF" would be kept together. That is, there might be no | "IETF" would be kept together. That is, there might be no | |||
internal representation of paragraphs at all. | internal representation of paragraphs at all. | |||
o ensuring that the running order of text in the content stream | o ensuring that the running order of text in the content stream | |||
matches the logical reading order. That is, a sentence such as | matches the logical reading order. That is, a sentence such as | |||
'The Internet Engineering Task Force (IETF) supports the | 'The Internet Engineering Task Force (IETF) supports the | |||
Internet.' would be kept together as a sentence, and multiple | Internet.' would be kept together as a sentence, and multiple | |||
sentences within a paragraph would be kept together. | sentences within a paragraph would be kept together. | |||
All of these end up with essentially the same visual representation | All of these end up with essentially the same visual representation | |||
of the output. However, each level has tradeoffs for auxiliary uses, | of the output. However, each level has tradeoffs for auxiliary uses, | |||
such as searching or indexing, commenting and annotation, and | such as searching or indexing, commenting and annotation, and | |||
accessibility (text-to-speech). Keeping the running order of text in | accessibility (text-to-speech). Keeping the running order of text in | |||
the content stream in the proper order supports all of these | the content stream in the proper order supports all of these | |||
auxiliary uses. | auxiliary uses. | |||
In addition, the "role map" feature of PDF (<http://help.adobe.com/ | In addition, the "role map" feature of PDF | |||
en_US/acrobat/X/pro/using/ | (<http://help.adobe.com/en_US/acrobat/X/pro/using/ | |||
WS58a04a822e3e50102bd615109794195ff-7cd8.w.html>) would additionally | WS58a04a822e3e50102bd615109794195ff-7cd8.w.html>) would additionally | |||
allow for the mapping of the logical tags found in the original XML | allow for the mapping of the logical tags found in the original XML | |||
into tags in the PDF. | into tags in the PDF. | |||
Recommendations: | Recommendations: | |||
o Text in content streams should follow the XML document's logical | o Text in content streams should follow the XML document's logical | |||
order (in the order of tags) to the extent possible. This will | order (in the order of tags) to the extent possible. This will | |||
provide optimal reuse by software that does not understand Tagged | provide optimal reuse by software that does not understand Tagged | |||
PDF. (PDF/UA requires this.) | PDF. (PDF/UA requires this.) | |||
o It might be possible to use the "role map" annotation to capture | o It might be possible to use the "role map" annotation to capture | |||
enough of the xml2rfc source structure, to the point where it is | enough of the xml2rfc source structure, to the point where it is | |||
possible to reconstruct the XML source structure completely. | possible to reconstruct the XML source structure completely. | |||
However, there is not a compelling case to do so over embedding | However, there is not a compelling case to do so over embedding | |||
the original XML, as described in Section 3.2.7. | the original XML, as described in Section 3.2.7. | |||
3.2.2. Unicode Support | 3.2.2. Unicode Support | |||
PDF itself does not require use of Unicode. Text is represented as a | PDF itself does not require use of Unicode. Text is represented as a | |||
sequence of glyphs which then can be mapped to Unicode. | sequence of glyphs which then can be mapped to Unicode. | |||
skipping to change at page 10, line 31 ¶ | skipping to change at page 11, line 22 ¶ | |||
possible to reconstruct the XML source structure completely. | possible to reconstruct the XML source structure completely. | |||
However, there is not a compelling case to do so over embedding | However, there is not a compelling case to do so over embedding | |||
the original XML, as described in Section 3.2.7. | the original XML, as described in Section 3.2.7. | |||
3.2.2. Unicode Support | 3.2.2. Unicode Support | |||
PDF itself does not require use of Unicode. Text is represented as a | PDF itself does not require use of Unicode. Text is represented as a | |||
sequence of glyphs which then can be mapped to Unicode. | sequence of glyphs which then can be mapped to Unicode. | |||
Recommendations: | Recommendations: | |||
PDF files generated must have the full text, as it appears in the | PDF files generated must have the full text, as it appears in the | |||
original XML. | original XML. | |||
Unicode normalization may occur. | Unicode normalization may occur. | |||
Text within SVG for SVG images should also have Unicode mappings. | Text within SVG for SVG images should also have Unicode mappings. | |||
Alt-text for images should also support Unicode. | Alt-text for images should also support Unicode. | |||
3.2.3. Image Processing (Artwork) | 3.2.3. Image Processing (Artwork) | |||
The XML allows both ASCII art and SVG to be used for artwork. | The XML allows both ASCII art and SVG to be used for artwork. | |||
Recommendations: | Recommendations: | |||
If both ASCII art and SVG are available for a picture, the SVG | If both ASCII art and SVG are available for a picture, the SVG | |||
artwork should be the preferred over the ASCII artwork. | artwork should be the preferred over the ASCII artwork. | |||
ASCII artwork must be rendered using a monospace font. | ASCII artwork must be rendered using a monospace font. | |||
3.2.4. Text Description of Images (Alt-Text) | 3.2.4. Text Description of Images (Alt-Text) | |||
Guidelines for accessibility of PDF | Guidelines for accessibility of PDF <http://www.w3.org/TR/WCAG20- | |||
<http://www.w3.org/TR/WCAG20-TECHS/PDF1.html> recommend that images, | TECHS/PDF1.html> recommend that images, formulas, and other non-text | |||
formulas, and other non-text items provide textual alternatives, | items provide textual alternatives, using the '/Alt' Tag in PDF to | |||
using the '/Alt' Tag in PDF to provide human-readable text that can | provide human-readable text that can be vocalized by text-to-speech | |||
be vocalized by text-to-speech technology. | technology. | |||
Recommendation: Any alt-text for artwork and figures available in the | Recommendation: Any alt-text for artwork and figures available in the | |||
XML source should be stored using the PDF /Alt property. Internet | XML source should be stored using the PDF /Alt property. Internet | |||
draft authors and the RFC editor should ensure inclusion of alt-text | draft authors and the RFC editor should ensure inclusion of alt-text | |||
for all SVG or images, within the XML source. | for all SVG or images, within the XML source. | |||
3.2.5. Metadata Support | 3.2.5. Metadata Support | |||
Metadata encodes information about the document authors, the document | Metadata encodes information about the document authors, the document | |||
series, date created, etc. Having this metadata within the PDF file | series, date created, etc. Having this metadata within the PDF file | |||
skipping to change at page 11, line 40 ¶ | skipping to change at page 12, line 36 ¶ | |||
navigation aid. | navigation aid. | |||
The section structure of an RFC can be mapped into the PDF elements | The section structure of an RFC can be mapped into the PDF elements | |||
for the document structure. This will allow the bookmark feature of | for the document structure. This will allow the bookmark feature of | |||
PDF readers to be used to quickly access sections of the document. | PDF readers to be used to quickly access sections of the document. | |||
Recommendation: The section structure of an RFC should be mapped into | Recommendation: The section structure of an RFC should be mapped into | |||
the PDF elements for the document structure. This would include | the PDF elements for the document structure. This would include | |||
section headings for the boilerplate sections such as the Abstract, | section headings for the boilerplate sections such as the Abstract, | |||
Status of the Document, Table of Contents, and Author Addresses, plus | Status of the Document, Table of Contents, and Author Addresses, plus | |||
the obvious section headings that are normally included in the Table | the obvious section headings that are normally included in the | |||
of Contents. If possible, this should be done in a way that the same | Table of Contents. If possible, this should be done in a way that | |||
fragment identifiers for the HTML version of the RFC will work for | the same fragment identifiers for the HTML version of the RFC will | |||
the PDF version. | work for the PDF version. | |||
3.2.7. Embedded Files | 3.2.7. Embedded Files | |||
PDF has the capability of including other files; the files may be | PDF has the capability of including other files; the files may be | |||
labeled both by a media type and a role, the AFRelationship key | labeled both by a media type and a role, the AFRelationship key | |||
[PDFA3]. In this way, the PDF file acts also as a container. | [PDFA3]. In this way, the PDF file acts also as a container. | |||
Embedded content may be compressed. | Embedded content may be compressed. | |||
Many PDF viewers support the ability to view and extract embedded | Many PDF viewers support the ability to view and extract embedded | |||
skipping to change at page 13, line 7 ¶ | skipping to change at page 14, line 14 ¶ | |||
4. References | 4. References | |||
4.1. References | 4.1. References | |||
[PDF] ISO, "Portable document format -- Part 1: PDF 1.7", | [PDF] ISO, "Portable document format -- Part 1: PDF 1.7", | |||
ISO 32000-1, 2008. | ISO 32000-1, 2008. | |||
Also available free from Adobe. | Also available free from Adobe. | |||
[XMP] ISO, "Extensible metadata platform (XMP) specification -- | ||||
Part 1: Data model, serialization and core properties", | ||||
ISO 16684-1, 2012. | ||||
Not available free, but there are a number of descriptive | ||||
resources, e.g., <http://en.wikipedia.org/wiki/ | ||||
Extensible_Metadata_Platform> | ||||
[PDFA2] ISO, "Electronic document file format for long-term | [PDFA2] ISO, "Electronic document file format for long-term | |||
preservation -- Part 2: Use of ISO 32000-1 (PDF/A-2).", | preservation -- Part 2: Use of ISO 32000-1 (PDF/A-2).", | |||
ISO 19005-2, 2011. | ISO 19005-2, 2011. | |||
[PDFA3] ISO, "Electronic document file format for long-term | [PDFA3] ISO, "Electronic document file format for long-term | |||
preservation -- Part 3: Use of ISO 32000-1 with support | preservation -- Part 3: Use of ISO 32000-1 with support | |||
for embedded files (PDF/A-3)", ISO 19005-3, 2012. | for embedded files (PDF/A-3)", ISO 19005-3, 2012. | |||
[PDFUA] ISO, "Electronic document file format enhancement for | [PDFUA] ISO, "Electronic document file format enhancement for | |||
accessibility -- Part 1: Use of ISO 32000-1 (PDF/UA-1)", | accessibility -- Part 1: Use of ISO 32000-1 (PDF/UA-1)", | |||
ISO 19005-3, 2012. | ISO 19005-3, 2012. | |||
4.2. Informative References | [XMP] ISO, "Extensible metadata platform (XMP) specification -- | |||
Part 1: Data model, serialization and core properties", | ||||
[RFC2346] Palme, J., "Making Postscript and PDF International", | ISO 16684-1, 2012. | |||
RFC 2346, DOI 10.17487/RFC2346, May 1998, | ||||
<https://www.rfc-editor.org/info/rfc2346>. | ||||
[RFC6949] Flanagan, H. and N. Brownlee, "RFC Series Format | Not available free, but there are a number of descriptive | |||
Requirements and Future Development", RFC 6949, | resources, e.g., <http://en.wikipedia.org/wiki/ | |||
DOI 10.17487/RFC6949, May 2013, | Extensible_Metadata_Platform> | |||
<https://www.rfc-editor.org/info/rfc6949>. | ||||
[RFC7322] Flanagan, H. and S. Ginoza, "RFC Style Guide", RFC 7322, | 4.2. Informative References | |||
DOI 10.17487/RFC7322, September 2014, | ||||
<https://www.rfc-editor.org/info/rfc7322>. | ||||
[I-D.flanagan-nonascii] | [I-D.flanagan-nonascii] | |||
Flanagan, H., "The Use of Non-ASCII Characters in RFCs", | Flanagan, H., "The Use of Non-ASCII Characters in RFCs", | |||
draft-flanagan-nonascii-06 (work in progress), | draft-flanagan-nonascii-06 (work in progress), November | |||
November 2015, <https://datatracker.ietf.org/doc/html/ | 2015, <https://datatracker.ietf.org/doc/html/draft- | |||
draft-flanagan-nonascii-06>. | flanagan-nonascii-06>. | |||
[I-D.flanagan-rfc-css] | [I-D.flanagan-rfc-css] | |||
Flanagan, H., "CSS Requirements for RFCs", | Flanagan, H., "CSS Requirements for RFCs", draft-flanagan- | |||
draft-flanagan-rfc-css-04 (work in progress), | rfc-css-04 (work in progress), September 2015, | |||
September 2015, <https://datatracker.ietf.org/doc/html/ | <https://datatracker.ietf.org/doc/html/draft-flanagan-rfc- | |||
draft-flanagan-rfc-css-04>. | css-04>. | |||
[I-D.hardy-pdf-mime] | [I-D.hardy-pdf-mime] | |||
Hardy, M., Masinter, L., Markovic, D., Johnson, D., and M. | Hardy, M., Masinter, L., Markovic, D., Johnson, D., and M. | |||
Bailey, "The application/pdf Media Type", | Bailey, "The application/pdf Media Type", draft-hardy-pdf- | |||
draft-hardy-pdf-mime-05 (work in progress), February 2017, | mime-05 (work in progress), February 2017, | |||
<https://datatracker.ietf.org/doc/html/ | <https://datatracker.ietf.org/doc/html/draft-hardy-pdf- | |||
draft-hardy-pdf-mime-05>. | mime-05>. | |||
[I-D.hildebrand-html-rfc] | [I-D.hildebrand-html-rfc] | |||
Hildebrand, J. and P. Hoffman, "HyperText Markup Language | Hildebrand, J. and P. Hoffman, "HyperText Markup Language | |||
Request For Comments Format", draft-hildebrand-html-rfc-10 | Request For Comments Format", draft-hildebrand-html-rfc-10 | |||
(work in progress), August 2015, <https:// | (work in progress), August 2015, | |||
datatracker.ietf.org/doc/html/ | <https://datatracker.ietf.org/doc/html/draft-hildebrand- | |||
draft-hildebrand-html-rfc-10>. | html-rfc-10>. | |||
[I-D.housley-rfc-and-id-signatures] | [I-D.housley-rfc-and-id-signatures] | |||
Housley, R., "Digital Signatures on RFC and Internet-Draft | Housley, R., "Digital Signatures on RFC and Internet-Draft | |||
Documents", draft-housley-rfc-and-id-signatures-03 (work | Documents", draft-housley-rfc-and-id-signatures-03 (work | |||
in progress), June 2016, <https://datatracker.ietf.org/ | in progress), June 2016, | |||
doc/html/draft-housley-rfc-and-id-signatures-03>. | <https://datatracker.ietf.org/doc/html/draft-housley-rfc- | |||
and-id-signatures-03>. | ||||
URIs | [RFC2346] Palme, J., "Making Postscript and PDF International", | |||
RFC 2346, DOI 10.17487/RFC2346, May 1998, | ||||
<https://www.rfc-editor.org/info/rfc2346>. | ||||
[1] <https://sourceforge.net/projects/sourcesans.adobe/ | [RFC6949] Flanagan, H. and N. Brownlee, "RFC Series Format | |||
?source=directory> | Requirements and Future Development", RFC 6949, | |||
DOI 10.17487/RFC6949, May 2013, | ||||
<https://www.rfc-editor.org/info/rfc6949>. | ||||
[2] <https://sourceforge.net/projects/sourceserifpro.adobe/ | [RFC7322] Flanagan, H. and S. Ginoza, "RFC Style Guide", RFC 7322, | |||
?source=directory> | DOI 10.17487/RFC7322, September 2014, | |||
<https://www.rfc-editor.org/info/rfc7322>. | ||||
[3] <https://sourceforge.net/projects/sourcecodepro.adobe/ | 4.3. URIs | |||
?source=drectory> | ||||
[4] <https://www.rosettatype.com/Skolar> | [1] https://sourceforge.net/projects/ | |||
sourcesans.adobe/?source=directory | ||||
[5] <https://www.google.com/get/noto/> | [2] https://sourceforge.net/projects/ | |||
sourceserifpro.adobe/?source=directory | ||||
[3] https://sourceforge.net/projects/ | ||||
sourcecodepro.adobe/?source=drectory | ||||
[4] https://www.rosettatype.com/Skolar | ||||
[5] https://www.google.com/get/noto/ | ||||
Appendix A. History and Current Use of PDF with RFCs and Internet- | Appendix A. History and Current Use of PDF with RFCs and Internet- | |||
Drafts | Drafts | |||
NOTE: this section is meant as an overview to give some background. | NOTE: this section is meant as an overview to give some background. | |||
A.1. RFCs | A.1. RFCs | |||
The RFC series has for a long time accepted Postscript renderings of | The RFC series has for a long time accepted Postscript renderings of | |||
RFCs, either in addition to or instead of the text renderings of | RFCs, either in addition to or instead of the text renderings of | |||
skipping to change at page 15, line 16 ¶ | skipping to change at page 16, line 29 ¶ | |||
rendering of RFCs. Usually, this has been a print of the text file | rendering of RFCs. Usually, this has been a print of the text file | |||
that does not take advantage of any of the broader PDF functionality, | that does not take advantage of any of the broader PDF functionality, | |||
unless there was a Postscript version of the RFC, which would then be | unless there was a Postscript version of the RFC, which would then be | |||
used by the RFC editor to generate the PDF. | used by the RFC editor to generate the PDF. | |||
A.2. Internet-Drafts | A.2. Internet-Drafts | |||
In addition to PDFs generated and published by the RFC editor, the | In addition to PDFs generated and published by the RFC editor, the | |||
IETF tools community has also long supported PDF for Internet-Drafts. | IETF tools community has also long supported PDF for Internet-Drafts. | |||
Most RFCs start with Internet-Drafts, edited by individual authors. | Most RFCs start with Internet-Drafts, edited by individual authors. | |||
The Internet-Drafts submission tool at | The Internet-Drafts submission tool at https://datatracker.ietf.org/ | |||
https://datatracker.ietf.org/submit/ accepts PDF and Postscript files | submit/ accepts PDF and Postscript files in addition to the | |||
in addition to the (required) text submission and (currently | (required) text submission and (currently optional) XML. If a PDF | |||
optional) XML. If a PDF wasn't submitted for a particular version of | wasn't submitted for a particular version of an Internet-Draft, the | |||
an Internet-Draft, the tools would generate one from the Postscript, | tools would generate one from the Postscript, HTML, or text. | |||
HTML, or text. | ||||
Appendix B. Paged Content Layout Quality | Appendix B. Paged Content Layout Quality | |||
The process of creating a paged document from running text typically | The process of creating a paged document from running text typically | |||
involves ensuring that related material is present on the same page | involves ensuring that related material is present on the same page | |||
together, and that artifacts of pagination don't interfere with easy | together, and that artifacts of pagination don't interfere with easy | |||
reading of the document. Typical high-quality layout processors do | reading of the document. Typical high-quality layout processors do | |||
several things: | several things: | |||
Widow and Orphan Management: Widows and orphans | Widow and Orphan Management: Widows and orphans | |||
(<https://en.wikipedia.org/wiki/Widows_and_orphans>) should be | (<https://en.wikipedia.org/wiki/Widows_and_orphans>) should be | |||
avoided automatically (unless the entire paragraph is only one | avoided automatically (unless the entire paragraph is only one | |||
line). Ensure that a page break does not occur after the first | line). Ensure that a page break does not occur after the first | |||
line of a paragraph (orphans), if necessary, using slightly longer | line of a paragraph (orphans), if necessary, using slightly longer | |||
page sizes. Similarly, ensure that a page break does not occur | page sizes. Similarly, ensure that a page break does not occur | |||
before the last line of a paragraph (widows). | before the last line of a paragraph (widows). | |||
Keep Section Heading Contiguous: Do not insert a page break | Keep Section Heading Contiguous: Do not insert a page break | |||
immediately after a section heading. If there isn't room on a | immediately after a section heading. If there isn't room on a | |||
page for the first (two) lines of a section after the section | page for the first (two) lines of a section after the section | |||
heading, insert a page break before the heading. | heading, insert a page break before the heading. | |||
Avoid Splitting Artwork: Figures should not be split from figure | Avoid Splitting Artwork: Figures should not be split from figure | |||
titles. If possible, keep the figure on the same page as the | titles. If possible, keep the figure on the same page as the | |||
(first) mention of the figure. | (first) mention of the figure. | |||
Headers for Long Tables after Page Breaks: Another common option in | Headers for Long Tables after Page Breaks: Another common option in | |||
producing paginated documents is to include the column headings of | producing paginated documents is to include the column headings of | |||
a table if the table cannot be displayed on a single page. | a table if the table cannot be displayed on a single page. | |||
Similarly, tables should not be split from the table titles. | Similarly, tables should not be split from the table titles. | |||
keepWithNext and keepWithPrevious: The XML attributes of | keepWithNext and keepWithPrevious: The XML attributes of | |||
"keepWithNext" and "keepWithPrevious" should be followed whenever | "keepWithNext" and "keepWithPrevious" should be followed whenever | |||
possible. | possible. | |||
Whitespace Preservation: The XML entities such as NBSP and NBHYPHEN | Whitespace Preservation: The XML entities such as NBSP and NBHYPHEN | |||
should be followed as directed whenever possible. | should be followed as directed whenever possible. | |||
Appendix C. Tooling | Appendix C. Tooling | |||
This section discusses tools for viewing, comparing, creating, | This section discusses tools for viewing, comparing, creating, | |||
manipulating, transforming PDF files, including those currently in | manipulating, transforming PDF files, including those currently in | |||
use by the RFC editor and Internet-Drafts, as well as outlining | use by the RFC editor and Internet-Drafts, as well as outlining | |||
available PDF tools for various processes. | available PDF tools for various processes. | |||
skipping to change at page 16, line 44 ¶ | skipping to change at page 18, line 11 ¶ | |||
While almost all viewers also support printing of PDF files, printing | While almost all viewers also support printing of PDF files, printing | |||
is one of the most important use cases for PDFs. Some printers have | is one of the most important use cases for PDFs. Some printers have | |||
direct PDF support. | direct PDF support. | |||
C.3. PDF Generation Libraries | C.3. PDF Generation Libraries | |||
Because the xml2rfc format is a unique format, software for | Because the xml2rfc format is a unique format, software for | |||
converting XML source documents to the various formats will be | converting XML source documents to the various formats will be | |||
needed, including PDF generation. | needed, including PDF generation. | |||
One promising direction is suggested in <http://greenbytes.de/tech/ | One promising direction is suggested in | |||
webdav/rfc2629xslt/rfc2629xslt.html#output.pdf.fop>: using XSLT to | <http://greenbytes.de/tech/webdav/rfc2629xslt/ | |||
generate XSL-FO which is then processed by a formatting object | rfc2629xslt.html#output.pdf.fop>: using XSLT to generate XSL-FO which | |||
processor such as Apache FOP. | is then processed by a formatting object processor such as Apache | |||
FOP. | ||||
Several libraries are also available for generating PDF signatures. | Several libraries are also available for generating PDF signatures. | |||
The choice of library to use for xml2pdf will depend on many factors: | The choice of library to use for xml2pdf will depend on many factors: | |||
programming language, quality of implementation, quality of PDF | programming language, quality of implementation, quality of PDF | |||
generated, support, cost, availability, and so forth. | generated, support, cost, availability, and so forth. | |||
C.4. Typefaces | C.4. Typefaces | |||
This section is intended to discuss available typefaces that might | This section is intended to discuss available typefaces that might | |||
satisfy requirements. Some openly available fixed-width typefaces | satisfy requirements. Some openly available fixed-width typefaces | |||
skipping to change at page 17, line 11 ¶ | skipping to change at page 18, line 27 ¶ | |||
Several libraries are also available for generating PDF signatures. | Several libraries are also available for generating PDF signatures. | |||
The choice of library to use for xml2pdf will depend on many factors: | The choice of library to use for xml2pdf will depend on many factors: | |||
programming language, quality of implementation, quality of PDF | programming language, quality of implementation, quality of PDF | |||
generated, support, cost, availability, and so forth. | generated, support, cost, availability, and so forth. | |||
C.4. Typefaces | C.4. Typefaces | |||
This section is intended to discuss available typefaces that might | This section is intended to discuss available typefaces that might | |||
satisfy requirements. Some openly available fixed-width typefaces | satisfy requirements. Some openly available fixed-width typefaces | |||
(without extensive Unicode support, however) include: | (without extensive Unicode support, however) include: | |||
o Source Sans [1] | o Source Sans [1] | |||
o Source Serif Pro [2] | o Source Serif Pro [2] | |||
o Source Code Pro [3] | o Source Code Pro [3] | |||
A font that looks promising for its broad Unicode support is | ||||
Skolar [4], but it requires licensing. Another potentially useful | A font that looks promising for its broad Unicode support is Skolar | |||
set of typefaces is the Noto [5] family from Google. | [4], but it requires licensing. Another potentially useful set of | |||
typefaces is the Noto [5] family from Google. | ||||
C.5. Other Tools | C.5. Other Tools | |||
In addition to generating and viewing PDF, other categories of PDF | In addition to generating and viewing PDF, other categories of PDF | |||
tools are available and may be useful both during specification | tools are available and may be useful both during specification | |||
development and for published RFCs. These include tools for | development and for published RFCs. These include tools for | |||
comparing two PDFs, checkers that could be used to validate the | comparing two PDFs, checkers that could be used to validate the | |||
results of conversion, reviewing and commentary tools that attach | results of conversion, reviewing and commentary tools that attach | |||
annotations to PDF files, and digital signature creation and | annotations to PDF files, and digital signature creation and | |||
validation. | validation. | |||
skipping to change at page 17, line 36 ¶ | skipping to change at page 19, line 8 ¶ | |||
validation. | validation. | |||
Validation of an arbitrary author-generated PDF file would be quite | Validation of an arbitrary author-generated PDF file would be quite | |||
difficult; there are few PDF validation tools. However, if RFCs and | difficult; there are few PDF validation tools. However, if RFCs and | |||
Internet-Drafts are generated by conversion from XML via xml2rfc, | Internet-Drafts are generated by conversion from XML via xml2rfc, | |||
then explicit validation of PDF and adherence to expected profiles | then explicit validation of PDF and adherence to expected profiles | |||
would mainly be useful to ensure that xml2rfc has functioned | would mainly be useful to ensure that xml2rfc has functioned | |||
properly. | properly. | |||
Recommendations: | Recommendations: | |||
o Discourage (but allow) submission of a PDF representation for | o Discourage (but allow) submission of a PDF representation for | |||
Internet-Drafts. In most cases, the PDF for an Internet-Draft | Internet-Drafts. In most cases, the PDF for an Internet-Draft | |||
should be produced automatically when XML is submitted, with an | should be produced automatically when XML is submitted, with an | |||
opportunity to verify the conversion. | opportunity to verify the conversion. | |||
Appendix D. Acknowledgements | Appendix D. Acknowledgements | |||
The input of the following people is gratefully acknowledged: Nevil | The input of the following people is gratefully acknowledged: Nevil | |||
Brownlee (ISE), Brian Carpenter, Chris Dearlove, Martin Duerst, | Brownlee (ISE), Brian Carpenter, Chris Dearlove, Martin Duerst, | |||
Heather Flanagan (RSE), Joe Hildebrand, Paul Hoffman, Duff Johnson, | Heather Flanagan (RSE), Joe Hildebrand, Paul Hoffman, Duff Johnson, | |||
Ted Lemon, Sean Leonard, Henrik Levkowetz, Julian Reschke, Adam | Ted Lemon, Henrik Levkowetz, Julian Reschke, Adam Roach, Leonard | |||
Roach, Leonard Rosenthol, Alice Russo, Robert Sparks, Andrew | Rosenthol, Alice Russo, Robert Sparks, Andrew Sullivan, and Dave | |||
Sullivan, and Dave Thaler. | Thaler. | |||
Authors' Addresses | Authors' Addresses | |||
Tony Hansen (editor) | Tony Hansen (editor) | |||
AT&T Laboratories | AT&T Laboratories | |||
200 Laurel Ave. South | 200 Laurel Ave. South | |||
Middletown, NJ 07748 | Middletown, NJ 07748 | |||
USA | USA | |||
Email: tony@att.com | Email: tony@att.com | |||
End of changes. 53 change blocks. | ||||
117 lines changed or deleted | 140 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |