skia2/gn
Dominic Mazzoni 656cefe65d Add initial support for generating tagged PDFs.
Adds an interface for the document creator to pass in a tree
of tags indicating the structure of the document, each with a type
(from a predetermined enum of possible types) and a node ID.
It also adds a setNodeId function to SkCanvas so that page content
can be associated with a particular tag. If both the tag tree and
marked content are present, Skia can now output a properly tagged
PDF.

An example program is included. When used properly, the PDF generated
by this patch is valid and the tags are parsed properly by Adobe
Acrobat. It handles many corner cases like content that spans more
than one page, or tags that don't correspond to any marked content, or
marked content that doesn't correspond to any tags.

However, it doesn't implement all of the features of PDF accessibility
yet, there are some additional attributes that can be associated with
some tags that need to be supported, too, in order to properly tag
things like figures and tables.

Bug: skia:8148
Change-Id: I2e448eca8ded8e1b29ba685663b557ae7ad7e23e
Reviewed-on: https://skia-review.googlesource.com/141138
Reviewed-by: Hal Canary <halcanary@google.com>
2018-09-27 19:35:40 +00:00
..
toolchain link with --start-group/--end-group 2018-08-07 16:18:01 +00:00
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
ar.py GN: quiet alink spam on Mac 2016-11-07 14:19:32 +00:00
bench.gni ccpr: Rename GrCCPathParser to GrCCFiller 2018-08-20 20:25:24 +00:00
BUILD.gn Reland "always optimize third_party code" 2018-09-20 23:21:01 +00:00
BUILDCONFIG.gn Reland "always optimize third_party code" 2018-09-20 23:21:01 +00:00
call.py Add gn plumbing for mdbviz tool 2017-09-05 13:57:44 +00:00
checkdir.py Bundle resources and skps directories into iOS app. 2017-11-29 17:06:25 +00:00
codesign_ios.py Allow different identities for iOS code signing 2017-12-07 20:42:00 +00:00
compile_processors.py switched to infra version of clang-format for skslc 2017-07-27 20:28:50 +00:00
core.gni Remove more SkColorSpaceXform (and friends) 2018-09-26 22:30:05 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
create_sksl_enums.py Create sksl_enums.inc with UNIX line endings (even on Windows) 2018-02-09 15:13:11 +00:00
effects_imagefilters.gni move blurimagefilter.cpp back into effects 2018-06-26 15:01:52 +00:00
effects.gni Remove all old gpu gradient code 2018-09-14 22:21:56 +00:00
find_headers.py Add 'public' headers support to find_headers.py 2018-05-30 18:00:09 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
flutter_defines.gni Reland "remove SK_SUPPORT_LEGACY_TYPEFACE_MAKEFROMSTREAM" 2018-09-13 15:19:09 +00:00
gen_plist_ios.py Add create_bundle support for GN 2017-11-28 15:29:07 +00:00
gm.gni Revert "Reland "Implement an explicit binary search-based analytic gradient colorizer"" 2018-09-27 16:50:52 +00:00
gn_meta_sln.py Decorate project names with their relative path in the meta SLN 2018-06-01 19:22:08 +00:00
gn_to_bp_utils.py Supress warnings about implicit fallthrough in Android. 2018-09-11 19:49:29 +00:00
gn_to_bp.py SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00
gn_to_cmake.py Improve CMakeLists.txt auto regeneration. 2018-06-26 20:33:29 +00:00
gpu.gni Revert "Reland "Implement an explicit binary search-based analytic gradient colorizer"" 2018-09-27 16:50:52 +00:00
highest_version_dir.py Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +00:00
is_clang.py GN: match shell behavior for cc and cxx in is_clang.py 2016-09-27 09:29:24 -07:00
opts.gni add src/opts headers to .gni files 2018-09-05 20:31:09 +00:00
pdf.gni Add initial support for generating tagged PDFs. 2018-09-27 19:35:40 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Re-land "converted OverdrawColorFilter to SkSL" 2017-10-26 14:58:27 +00:00
samples.gni Remove a largue quantity of 4444 and/or dithering code 2018-09-21 00:50:06 +00:00
shared_sources.gni SK_SUPPORT_LEGACY_DOCUMENT_FACTORY: clean up part 1/2 2018-09-21 19:50:40 +00:00
sksl.gni Revert "Reland "Implement an explicit binary search-based analytic gradient colorizer"" 2018-09-27 16:50:52 +00:00
tests.gni Add initial support for generating tagged PDFs. 2018-09-27 19:35:40 +00:00
utils.gni Use SkUniqueCFRef in SkImage*CG. 2018-09-21 15:35:29 +00:00
xps.gni SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00