| <<<Back 1 day (to 2016/11/08) | 20161109 |
Draco_ | Is this where I can contact MuPDF devs? | 00:46.12 |
Robin_Watts | yup. | 00:52.26 |
| .topic Ghostscript (and MuPDF) development and discussion | live channel log at http://ghostscript.com/irclogs/ | Info at http://www.ghostscript.com and http://www.mupdf.com | 00:53.14 |
| tor8: So, I think I've changed my mind about this usage/intent/OCG stuff. | 10:37.41 |
| I think the right way to do it *is* to have state in the pdf_document. | 10:37.55 |
tor8 | ok. | 10:38.09 |
Robin_Watts | When we load the PDF document, we set up the default layer state. | 10:38.17 |
| Then we have functions to enumerate the different configs within it, and to select one. | 10:38.57 |
| Then we have an API to pull out the 'display' (or menu) for that config, and to select/deselect elements within that menu. | 10:39.43 |
| Then we can set the usage, and the intent, and everything just falls out fairly neatly, I think. | 10:43.12 |
tor8 | okay. | 10:48.08 |
| sounds reasonable enough. so something similar to one of my pastebins from yesterday? | 10:48.49 |
Robin_Watts | possibly. | 10:49.02 |
tor8 | but with more understanding of the arcane wonders of the PDF spec... :) | 10:49.12 |
Robin_Watts | my understanding of this stuff is fluid at best. | 10:49.36 |
tor8 | Robin_Watts: so the fz_paint_affine indentation/brace commit, did you approve that in the end? | 11:01.24 |
Robin_Watts | tor8: I did. | 11:12.02 |
tor8 | Robin_Watts: thanks. I'll tag an RC and make some tarballs. | 11:12.33 |
| and see if I can get my windows build system up and running again after my system failure :( | 11:12.48 |
Robin_Watts | tor8: ping | 17:16.11 |
| how would you feel about us having a value in the context (possibly in the AA context) for the minimum thin line size? | 17:16.40 |
| Any lines thinner than that size would be bumped up to it. | 17:16.49 |
| https://github.com/samshadwell/TrumpScript | 19:47.52 |
malc_ | hah | 20:00.14 |
Robin_Watts | tor8, sebras: Opinions on: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=622e0fd98dd33271c653136b4699af756689f866 | 20:31.55 |
| mvrhel_laptop, fredross-perry: You too, cos you guys are probably the ones likely to have to use this. | 20:32.19 |
fredross-perry | Robin - this ocg thing is PDF 2.0? | 20:46.12 |
Robin_Watts | fredross-perry: Nope. 1.5 | 22:38.01 |
fredross-perry | ok | 22:38.11 |
Robin_Watts | In 1.5 they define "View" and "Design" as Intents and say "there may be more". | 22:38.27 |
| In 2.0 they say "nope, just those two" | 22:38.35 |
fredross-perry | Ah. | 22:38.42 |
Robin_Watts | fredross-perry: Basically the idea of this stuff is so you can turn layers on and off in a PDF. | 22:39.07 |
| So you can have say 1 document with lots of different layers, 1 per language. | 22:39.29 |
| Or you could have technical blueprints where you can have different layers for water and electricity and aircon etc. | 22:39.52 |
fredross-perry | Right. Is this code a revision to something we already had, or new? | 22:39.55 |
Robin_Watts | fredross-perry: We had code before to turn the OCGs on and off for the default cases, but never anything to allow us to configure which ones to turn on more than that. | 22:40.33 |
| That's what I've added now. | 22:40.39 |
fredross-perry | So what's a "usage" vs "intent"? | 22:40.44 |
Robin_Watts | That's a horrible question. | 22:41.04 |
fredross-perry | Or a good question with a horrible answer. | 22:41.15 |
Robin_Watts | yeah. | 22:41.20 |
| The spec is unhelpful on this point - or at least the words keep bouncing off my brain. | 22:41.55 |
| Usage is "View" or "Export" or "Print". | 22:42.04 |
| In a viewer, you use "View". If you're exporting to a non-layer supporting format, you are supposed to use "Export", and if you're printing you use "Print" | 22:42.40 |
| So "Print" might have registration marks etc, I guess. | 22:42.52 |
| Usage kinda makes sense. | 22:43.03 |
| Intent is trickier. | 22:43.10 |
| Each OCG has an Intent value (either View, or Design, or All). | 22:43.36 |
| Depending on which Intent is in use (which comes from the selected layer configuration (or OCCD - Optional Content Configuration Dictionary)), that affects whether OCGs are considered for visibility or not. | 22:44.30 |
| I don't quite understand why OCGs alone aren't enough and why they need an Intent too. | 22:44.46 |
| I guess we'll find out if anyone ever actually gives us a file for which it matters. | 22:45.01 |
fredross-perry | Hmmm. | 22:46.17 |
Robin_Watts | The immediate question is, "is this enough of an API for you to code layer selection in GSView". I hope it should be. | 22:46.38 |
| The code fragment here is a quick test: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=67984051b3aa9d826e664f882858e2ade6e3ae79 | 22:47.00 |
| That enumerates the names of the layer configs and prints out the "configuration ui". | 22:47.21 |
| (i.e. text labels, checkboxes, radioboxes etc for a given configuration) | 22:47.39 |
| and then toggles some to check it's working. | 22:47.50 |
fredross-perry | So what the "configuration ui"? then? | 22:49.13 |
Robin_Watts | fredross-perry: Ok, so each PDF file can have multiple configurations. | 22:57.36 |
fredross-perry | is "ui" just a meaphor for values and toggles? | 22:58.05 |
Robin_Watts | Each configuration suggests how the groups in question should be presented to the user. | 22:58.15 |
| labels, nested groups, checkboxes and radioboxes, yes. | 22:58.30 |
| with the radioboxes being appropriately mutually exclusive. | 22:58.46 |
| so I offer a mechanism to read a) how many "rows" in the UI there are, b) to read the rows out, c) to select/toggle any given row. | 22:59.35 |
| It seemed the easiest way to work without having to require tons of logic in the caller. | 22:59.55 |
fredross-perry | I'll understand more when I start to use it, but it makes sense. A viewer could literally enact the "ui" in a real UI. | 23:01.14 |
Robin_Watts | I'm open to suggestions for better namings. | 23:01.25 |
| yeah. | 23:01.28 |
| I would absolutely expect a viewer to enable the "ui" in a UI. | 23:01.55 |
| s/enable/enact/ | 23:02.07 |
fredross-perry | Thanks. This'll make more sense as I try to make use of it. We'll need an array of files that use these, and (probably) a tool for creating our own. Or maybe Adobe does that already. | 23:05.11 |
| Forward 1 day (to 2016/11/10)>>> | |