| <<<Back 1 day (to 2012/10/08) | 2012/10/09 |
chrisl | kens: I just thought: that PS file ought to work on 64 bit Ghostscript, shouldn't it? | 07:48.38 |
kens | chrisl yes it does | 07:48.47 |
| According to Alex | 07:48.52 |
chrisl | Ah, great, can I have it, then, please? | 07:49.01 |
kens | Its attached to bug #692290 | 07:49.16 |
chrisl | thanks | 07:49.33 |
kens | I don't know how big a file it produces but you can increase the page count | 07:49.37 |
| Though the comments in the thread suggest that with the supplied command line it should get quite big | 07:50.22 |
kens | fetches coffee | 07:51.45 |
chrisl | I've got the file running through GS with the command line in the bug. I'm sure I can mess around to get a suitably large output..... | 07:57.06 |
kens | OK Distiller is still chewing on the file here with many pages | 07:57.24 |
chrisl | Well, Ghostscript ain't very quick either! | 07:57.57 |
kens | I suspect Distiller is faster for a small number of pages. | 07:58.16 |
| Its coming up on 400,000 now | 07:58.31 |
chrisl | <sigh> "no space left on device" :-( | 08:19.49 |
kens | Well you wanted a big file :-) | 08:20.00 |
chrisl | I didn't realise how full my disk was.... | 08:20.17 |
sebras | birthdays. | 08:47.48 |
| so no mupdf-hacking tonight. :) | 08:47.58 |
kens | Your birthday today sebras ? | 08:48.16 |
tor8 | sebras: happy 34th | 08:48.57 |
kens | Lol. My birthday today too, only a slightly bigger number. Happy mutual birthday sebras | 08:49.34 |
chrisl | sebras, kens: happy birthday to you both | 08:50.36 |
Robin_Watts | happy birthday kens/sebras! | 09:10.47 |
chrisl | kens: does pdfwrite check image data for the same image being repeated? | 09:20.26 |
kens | chrisl yes it does | 09:20.36 |
chrisl | Oh, balls. Can I disable it? | 09:20.48 |
kens | You can turn it off with -dDetectDuplicateImages | 09:20.48 |
chrisl | Ah, thanks | 09:20.52 |
kens | I may have spelled that wrong.... | 09:20.59 |
tor8 | kens, sebras: if you were here, I'd bake you a cake! | 09:23.04 |
kens | No looks like that is the correct spelling | 09:23.05 |
kens | would rather have a beer | 09:23.14 |
| Fortunately my parents gave me a case of English Ales :-) | 09:23.34 |
tor8 | I don't have a home brewery :( | 09:23.38 |
chrisl | kens: bit early in the morning..... | 09:23.43 |
kens | Well, I don't have a yard arm to gauge with :-) | 09:24.08 |
chrisl | Or the old classic "it's past noon *somewhere*"! | 09:24.40 |
kens | Distiller is still creating my PDF file.... Went from 0-100% then ffrom 0-100% 'saveing PDF outptu' and now its gone back and is at 33%, again.... | 09:25.16 |
| Oh, I guess its linearising it this time, should have turned that off. | 09:25.47 |
chrisl | Well, as I hadn't realised pdfwrite detected image duplicates, I have been trying to fathom how a 8.xGb temp file resulted in a 5.6Mb pdf, with image compression (I think) disabled! | 09:26.28 |
kens | Don't forget that pdfwrite may emit the image(s) multiple times in the temp file too, with different filters applied. ONly one ends up in the final file. | 09:27.24 |
chrisl | Even if I use "/EncodeColorImages false" and "/ColorImageFilter /None"? | 09:28.05 |
kens | That's weird. I though my monitor had a dead pixel, because the progress bar has a white spot int i. But if I move the window, teh white spot moves too :-) | 09:28.20 |
| chrisl I wouldn't like to guess, with pdfwrite.... | 09:28.37 |
chrisl | Hmm, okay, good point! | 09:28.57 |
kens | And after all that, the PDF file is only 483Mb. | 09:29.39 |
chrisl | kens: never mind, I can hack things around to get a sutiably large file. Thanks. | 09:31.30 |
kens | OK no problem chrisl | 09:31.48 |
chrisl | pdfwrite currently has 14Gb of temp files on my current run........ | 09:32.12 |
kens | And it did previously produce a valid PDF file ? | 09:32.28 |
chrisl | Yes | 09:32.57 |
kens | Well I guess that lends a lot of weight to the proposition that if I fix the xref emission then it will be OK for very large file creation even on 32-bit systems. | 09:33.39 |
| Which is good news | 09:33.47 |
chrisl | Once we sort out the stream code. | 09:34.30 |
kens | Sure, but its good news from my POV as it strongly implies the rest of the pdfwrite code is OK. | 09:35.02 |
chrisl | Yes, well, it's certainly getting a hammering this time - 17Gb temp files..... | 09:35.42 |
kens | How much free space did you say you have ? :-) | 09:36.05 |
chrisl | I pointed the temp and output to a different disk - it has 130Gb free (and dropping!) | 09:37.11 |
| kens: success! A 6.9 Gb pdf file which Acrobat opens (but interestingly, poppler doesn't) | 09:51.59 |
kens | chrisl, if Acrobat works, I'm not bothered about Poppler :-) | 09:53.59 |
chrisl | No, me neither. I'm sure poppler is "at fault" as it says "stream not searchable" which is odd..... | 09:54.43 |
kens | what does GS make of it ? | 09:55.52 |
chrisl | My 64 bit PS integers branch is currently at page 350 / 5000, and running | 09:57.42 |
Robin_Watts | sebras: Your sha512 fixes look like they cover most of bug693320. Do you have any comments on alex's last comment? | 10:00.31 |
sebras | Robin_Watts: don't know yet, give me an hour or two... | 10:59.33 |
| kens: congrats! :) we all celebrate our 28th birthday, we just increase the base every year... ;) | 11:00.34 |
kens | is on quite a big base now... | 11:03.18 |
chrisl | kens: with my 64 bit integer changes, the 6.9 Gb, 5000 page PDF runs to completion (albeit not very quickly!). Without my changes, rangecheck error | 11:07.08 |
kens | Sounds good to me | 11:07.19 |
chrisl | So, I'll press ahead with the stream changes - and I need to make the PS world stuff compile time optional <sigh> | 11:07.51 |
kens | OK, thanks chrisl | 11:07.58 |
sebras | Robin_Watts: I believe that my patch fixes bug 693320 yes. | 11:33.34 |
| the remaining parts about unaligned intgers I will have too look at (and alex's patch doesn't fix that). | 11:34.17 |
Robin_Watts | Whack-a-mole. Fix the clist rendering of this file, and the non-clist version springs a leak :( | 12:07.08 |
woshty | i need some examples for editing pdfs with ghostscript. what would be a good place to start? | 12:18.56 |
kens | you can't edit a PDF with Ghostscript | 12:19.08 |
Robin_Watts | Well, what do you mean by 'editing' ? | 12:19.56 |
woshty | what can i do with pdf and ghostscript then? extracting pictures? changing page order? | 12:20.09 |
Robin_Watts | You can do page extraction etc. | 12:20.18 |
kens | not really | 12:20.27 |
woshty | is there something better suited? | 12:20.48 |
Robin_Watts | If you want to extract pictures you can use mupdf and it's 'extract' tool. | 12:21.01 |
| You can change page order (kind of) with gs, but it works by completely rewriting the file, so some structural information may be lost. | 12:21.43 |
kens | What is it you actually want to do ? | 12:22.00 |
woshty | i only what to extract full page pictures from a pdf made by a printer adf .. the printer does not have full duplex .. i want to combine two pdfs, second with order reversed .. and i want a substep: extract all pictures and open viewer app to manually delete empty and other irrelevant pages | 12:23.29 |
| -full | 12:23.43 |
| the printer's adf can not scan in duplex mode was what i wanted to say | 12:24.09 |
Robin_Watts | woshty: So you want to use a printer to scan the odd pages to a PDF. Then again with the even pages. | 12:24.47 |
kens | Gs does not extract images at all | 12:24.51 |
Robin_Watts | Then you want to reassemble the two into a single pdf. | 12:24.57 |
kens | That's possible with GS, but non-trivial | 12:25.17 |
woshty | Robin_Watts: basically, yes .. it is one of those multifunctional hp things with hp-scan shell command | 12:25.34 |
Robin_Watts | ok. | 12:25.40 |
| So suppose you've got odds.pdf and evens.pdf | 12:25.58 |
| To reassemble them you need to do something like: | 12:26.07 |
| gs -sDEVICE=pdfwrite -o out.pdf -dFirstPage=1 -dLastPage=1 odds.pdf -dFirstPage=1 -dLastPage=1 evens.pdf -dFirstPage=2 -dLastPage=2 odds.pdf -dFirstPage=2 -dLastPage=2 evens.pdf ... | 12:27.03 |
| You may find it easiest to generate the list of: -dFirstPage=1 -dLastPage=1 odds.pdf etc to a text file (call it pages.txt say) | 12:27.45 |
| and then do gs -sDEVICE=pdfwrite -o out.pdf @pages.txt | 12:28.04 |
| kens: Can you see anything silly I've missed there ? | 12:28.17 |
kens | No that works OK | 12:28.28 |
| You can elide blank pages then too and reverse order obviously | 12:28.40 |
| Probably you want a viewer to build the list interactively | 12:28.53 |
| You could use the PNG or JPEG devices to create a thumbnail for the viewer | 12:29.41 |
woshty | does -$num work as a page identifier? | 12:30.09 |
kens | No | 12:30.23 |
| On input you need -dFirstPage and -dLastPage, on output you need %d | 12:31.03 |
woshty | how would i go about determining the number of pages a pdf has? | 12:31.51 |
kens | pdf_info.ps will tell you | 12:32.00 |
Robin_Watts | gs -sDEVICE=png16m -o odds%d.png odds.pdf -o evens%d.png evens.pdf | 12:32.18 |
| That will produce odds1.png, odds2.png. odds3.png etc and evens1.png, evens2.png etc, for your viewer. | 12:32.49 |
| If it was me... | 12:33.33 |
kens | Actually, it might be easiest to 'burst' the PDFs into single pahe PDFs for re-assembly | 12:33.51 |
Robin_Watts | I'd do the gs -sDEVICE=png16m thing to get the pngs. | 12:33.56 |
| Then I'd view them in a directory viewer. | 12:34.07 |
| and delete any empty ones. | 12:34.16 |
| (cos most directory viewers give thumbnails these days, right?) | 12:34.35 |
woshty | what is a directory viewer? | 12:34.47 |
Robin_Watts | then I'd have a script that looked at which ones were left, and made the commands from that. | 12:34.53 |
| woshty: What OS are you on? | 12:34.59 |
woshty | linux .. | 12:35.11 |
| you mean something like nautilus or gthumb or sth? | 12:35.30 |
Robin_Watts | On windows it'd be explorer, on mac os, finder... | 12:35.32 |
| on linux I guess it depends on your distro. | 12:35.57 |
| I just mean open a window that shows you the files in a directory. | 12:36.09 |
woshty | yeah, ok .. thought you meant some special tool that could render a pdf structure in folders .. | 12:36.10 |
Robin_Watts | no :) | 12:36.19 |
woshty | thank you very much .. i will try to use what you just told me .. | 12:37.37 |
Robin_Watts | Hi mvrhel_laptop | 14:17.30 |
| I have a fix for that thing that tests out ok. | 14:17.40 |
| It's slightly more complex than just copying those lines, so I'd like to run it past you before I commit it if you wouldn't mind. | 14:18.02 |
| At a convenient point for you, obviously. | 14:18.13 |
ray_laptop | I have a meeting at the school today, so won't be available after about 8:45 (PDT) | 14:29.39 |
| since henrys is at the show, are we having a meeting ? | 14:30.00 |
Robin_Watts | ray_laptop: I don't think we are planning meetings today on account of henrys being at the show. | 14:30.02 |
ray_laptop | Robin_Watts: ta | 14:30.16 |
Robin_Watts | If we were having a meeting, is there anything you would have wanted to bring up? | 14:30.18 |
ray_laptop | Robin_Watts: sorry -- was getting ready. No, I don't have anything I need to dsicuss. | 14:46.17 |
| Robin_Watts: I saw the reversion commit. Thanks for adding a comment as to WHY we can't have a 'mem' pointer | 14:50.00 |
Robin_Watts | ray_laptop: I have a new version here where I add a 'local_memory' pointer to the structure. | 14:50.35 |
| as we need that for process_interrupts() as well as debugging. | 14:50.53 |
ray_laptop | Robin_Watts: I was about to suggest just that -- a 'debug_mem' pointer that is not part of the stream_state_common | 14:51.43 |
Robin_Watts | I was tempted by "debug_memory", but it's not just used in debug builds. | 14:52.16 |
| hence local_memory | 14:52.22 |
ray_laptop | Robin_Watts: no, your name is better. I was thinking debug_mem before you mentioned process_interrupts | 14:52.46 |
| the use of the 'mem' pointer to get a lib_ctx pointer was more convenient than changing ALL of the function layers to pass around a context, but there are aspects to that hack that make problems/confusion | 14:55.56 |
kens | Hmm, new network setup, that was remarkably easy.... | 15:24.05 |
mvrhel_laptop | good morning | 15:33.40 |
Robin_Watts | morning | 15:33.53 |
mvrhel_laptop | Robin_Watts: you wanted to show me something? | 15:35.11 |
Robin_Watts | on the phone, sorry. | 15:35.44 |
| ok, back. | 15:37.25 |
| http://git.ghostscript.com/?p=user/robin/ghostpdl.git/.git;a=commitdiff;h=6f7a425bbc0b560a776a76293b4a1fdaffc76248 | 15:37.47 |
| I tried copying the lines that limited the {max,num}_components, and I found I ended up getting segv's in the non clist case. | 15:38.33 |
| The non clist case was hitting the limiting code where it hadn't before, and was dying while trying to pdf14_preserve_backdrop due to tos->data being larger than buf->data | 15:39.17 |
| and I noticed that we were limiting the colors AFTER having opened the device. | 15:39.37 |
| which seems odd. Surely we'd want to limit the colors before opening the device (and hence allocating all the buffers etc)? | 15:40.04 |
| If I change both occurrences of the limiting code to be like that, everything works. | 15:40.22 |
| Does that seem reasonable, or can you see something I've failed to consider? | 15:40.38 |
| kens: In what way new network? | 15:43.03 |
| Did you get an answer re: the windows repair stuff ? | 15:43.23 |
kens | Robin_Watts : they say I need to copy the drivers off teh install DVD to a thumb drive, I'm (slowly) copying that n ow. | 15:43.53 |
| In themeantime I've installed a powerlien etwork | 15:44.01 |
| powerline network | 15:44.08 |
Robin_Watts | kens: Ah, yeah. They kinda "just work", don't they? | 15:45.00 |
mvrhel_laptop | Robin_Watts: yes that makes sense to do it before we open the device. | 15:45.03 |
Robin_Watts | I installed one at my parent-in-laws house. | 15:45.11 |
kens | Robin_Watts : much to my surprise, yes! | 15:45.14 |
Robin_Watts | mvrhel_laptop: Ok. If you're happy, I'll commit. | 15:45.29 |
mvrhel_laptop | If it is working, I am happy | 15:45.41 |
Robin_Watts | kens: The password protection software for mine was shocking though, and didn't actually seem to do anything. | 15:45.54 |
| mvrhel_laptop: Thanks. | 15:46.19 |
mvrhel_laptop | so no meeting today correct? | 15:46.34 |
kens | Robin_Watts : I don't see any passwor dprotection on these, but I'm not too bothered | 15:46.46 |
| mvrhel : henrys said no meeting unless we want one | 15:47.01 |
Robin_Watts | mvrhel_laptop: No meeting, no. | 15:47.02 |
mvrhel_laptop | I don't need one | 15:47.17 |
kens | Personally I have nothing to bring to the meeting today anyway | 15:47.27 |
mvrhel_laptop | off to pick up my father at the airport in about an hour. house guest for the next 10 days.... | 15:47.39 |
Robin_Watts | mvrhel_laptop: ooh. fish? | 15:47.57 |
mvrhel_laptop | my office turns into the guest room | 15:47.58 |
kens | Umm, :-( | 15:48.15 |
mvrhel_laptop | yes... | 15:48.23 |
chrisl | That's better than the living room.... | 15:48.34 |
mvrhel_laptop | good point | 15:48.39 |
Robin_Watts | I love my dad, but that'd drive me bonkers. | 15:48.41 |
mvrhel_laptop | hehe yes | 15:48.47 |
| I have several projects for him | 15:48.52 |
kens | I don't think I could stand my parents staying for 10 days | 15:48.58 |
mvrhel_laptop | 3 trees to cut down | 15:48.58 |
kens | THough my brother is having his parents-in-law for a month | 15:49.18 |
Robin_Watts | envisages mvrhel running round the house with a hammer frantically 'finding projects' for his dad. | 15:49.23 |
mvrhel_laptop | a drain pipe that needs to be fixed, a generator connection install | 15:49.27 |
| exactly | 15:49.35 |
chrisl | I believe "driving you bonkers" is explicit in the job description for "Parent"..... | 15:49.49 |
Robin_Watts | When you have kids, they embarrass you for the first 15 years of their life. Then you spend the rest of the time getting your own back. | 15:50.30 |
chrisl | :-) | 15:50.41 |
kens | It doesn't take that long :-) | 15:50.47 |
| We've been embarassing Melanie for several years now, me especially | 15:51.05 |
mvrhel_laptop | I still think you need to get that lap top leash thing kens | 15:51.29 |
| that Henry showed us the other day | 15:51.49 |
kens | Lol | 15:52.01 |
| I'd be disowned | 15:52.06 |
Robin_Watts | "Of course I will come shopping with you, just let me get my laptop... oh, you've gone without me..." | 15:52.32 |
chrisl | I'd walk into things - end up with a broken laptop and/or broken body parts...... | 15:52.44 |
mvrhel_laptop | ha | 15:52.44 |
marcosw | are we meeting today? And if so did I miss it? | 16:05.11 |
kens | No meeting | 16:06.16 |
| Unless you want one | 16:06.23 |
| Aha, finally I can see the drives on this system... | 16:12.23 |
Robin_Watts | tor8: Do we have an iOS version of MuPDF 1.1 working it's way through apples approval process? | 16:19.32 |
| Morning henrys` | 16:21.51 |
henrys` | howdy | 16:21.56 |
ghostbot | que tal | 16:21.56 |
henrys` | the forms are working fine | 16:22.01 |
| I think I got a crash entering data quickly into the calculator but it seems to work okay if I go slowly. | 16:22.43 |
| kens:you might get some questions from Larry Spevack (sp?) soon. | 16:24.10 |
kens | Oh God :-( | 16:25.34 |
| Spevak | 16:25.42 |
tor8 | Robin_Watts: we do, it's been live since aug 27th | 16:25.47 |
Robin_Watts | Ah. | 16:26.17 |
| So can we close bug 693371 ? | 16:26.41 |
| That claims the current iOS version is still susceptible to it. | 16:28.01 |
henrys` | interesting to see a gs bug from a router. | 16:28.41 |
Robin_Watts | tor8: Loading CRASH.pdf into the ios app does indeed seem to cause it to exit. | 16:41.04 |
| tor8, sebras: New patch to fix the android build on my repo. | 16:43.21 |
mvrhel_laptop | bbiaw | 16:43.28 |
Robin_Watts | sebras: What was the problem with the function commit ? | 16:43.37 |
| I had pdf_debug_function as static, but I've fixed that now. | 16:43.51 |
kens | OK off for now, bye all. | 16:52.11 |
Robin_Watts | In gs there is a system that allows for periodically checking whether a job has been interrupted. | 19:30.23 |
| The code calls gp_check_interrupts(mem) every now and then to see if it should stop. | 19:30.59 |
| But by default that code does nothing. | 19:31.14 |
ray_work | Robin_Watts: I don't follow the question "system that allows for periodically checking whether a job has been interrupted" | 19:31.46 |
Robin_Watts | mem is used to get to the libcontext and hence our globals. | 19:31.58 |
| ray_work: Statement, not a question. | 19:32.04 |
ray_work | Robin_Watts: sorry. I read 'is there' | 19:32.28 |
Robin_Watts | The problem is that some of the time, mem can be NULL. | 19:32.46 |
ray_work | Robin_Watts: OK. so what _is_ your question ? | 19:32.54 |
Robin_Watts | I've just done a run with some code in there to detect the cases where mem is NULL and SEGV on them. | 19:33.27 |
ray_work | Robin_Watts: so, the polling is all 'ad hoc' and how long before we take between calls to gp_check_interrupts can vary | 19:33.51 |
Robin_Watts | and we are indeed failing in lots of places. | 19:33.52 |
| Right. | 19:33.58 |
| I could make the gp_check_interrupts just bale if mem is NULL. | 19:34.19 |
ray_work | Robin_Watts: I think it DEFINITELY should (if it didn't already) | 19:34.35 |
| it may not have if the original design used a global | 19:35.11 |
Robin_Watts | Previously it would say "if mem is null, then mem = magic_call_to_get_a_mem_ctx_from_a_global(); | 19:35.17 |
| But that doesn't work for a GS_THREADSAFE build. | 19:35.37 |
| The problem with just baling if mem is NULL is that we could get into a state where we take a very long time to spot an interrupt. | 19:36.14 |
ray_work | Robin_Watts: OK. So just skipping that poll callout seems OK, although we may want to come up with a way to debug how long we go between polls | 19:36.24 |
Robin_Watts | I was hoping that it would have been possible to make it so that we NEVER get there with mem being NULL. | 19:36.46 |
| I'd kind of assumed that we'd always have dev->memory as being valid. | 19:37.12 |
| but for devices created on the stack, dev->memory can be NULL. | 19:37.26 |
ray_work | Robin_Watts: for testing the effective poll interval we could get a high-resolution time on each valid poll and collect the interval data (historgram or max) | 19:37.41 |
Robin_Watts | I did wonder about adding a new memory pointer to every device that is guaranteed to be non-NULL. | 19:38.26 |
ray_work | Robin_Watts: at least that would let us look into files that have unusually long poll intervals | 19:38.27 |
Robin_Watts | ray_work: true. | 19:38.34 |
ray_work | Robin_Watts: I wouldn't mind adding that, or just the *lib_ctx directly | 19:39.01 |
Robin_Watts | In general the only stack based devices are ones that we've introduced internally (like the clipper and hit detect devices) | 19:39.41 |
| Better to add a mem than a lib_ctx, cos we might need to pass it into dmlprintf etc. | 19:40.10 |
ray_work | Robin_Watts: the gp_check_interrupts is pretty much only used on embedded systems (printers) that want to check for job cancel. "Real" OS's nowadays don't need polling for things like GUI updates | 19:40.31 |
Robin_Watts | ray_work: Indeed. | 19:40.43 |
| I'll look into adding a new memory pointer tomorrow, see how much work it is. | 19:42.01 |
| Any suggestions for names? | 19:42.15 |
ray_work | The gp_check_interrupts was implemented for Windows and early MacOS (and also used by me for job cancel on the very first embedded RIP port of gs) | 19:42.17 |
Robin_Watts | dev->heap ? | 19:42.27 |
ray_work | Robin_Watts: mem_lib_ctx_handle ??? | 19:42.50 |
Robin_Watts | but it's not a lib_ctx pointer. | 19:43.05 |
| context_memory ? | 19:43.16 |
ray_work | Robin_Watts: no, but that's what it is used for. Thus the 'mem_' at the start | 19:43.26 |
| Robin_Watts: but lib_ctx_mem or lib_ctx_memory would be fine, too | 19:43.55 |
Robin_Watts | I think the vague convention has been that memory pointers end in _memory (cache_memory, tile_memory etc) | 19:44.14 |
| I'll give that a go tomorrow then. Thanks. | 19:44.33 |
ray_work | Robin_Watts: so either lib_context_memory or lib_ctx_memory ?? | 19:44.47 |
ray_work | prefers the latter | 19:44.57 |
Robin_Watts | The latter is better to my taste. | 19:45.03 |
| but I personally prefer context_memory | 19:45.16 |
ray_work | or as the painter on the roof said "I prefer the ladder" | 19:45.23 |
| Robin_Watts: since we have at least two "context" structures (lib_ctx and i_ctx) I prefer keeping the 'lib_' in there | 19:46.18 |
Robin_Watts | Good answer. OK. | 19:46.32 |
ray_work | who knows -- if we ever do a mupdf based PDF parser, it may add YAC | 19:47.35 |
Robin_Watts | ray_work: MuPDF has a context, yes. | 19:49.18 |
| But it's more central to the operation of mupdf than gs' one is. | 19:49.42 |
| It wasn't designed in from the start, but when we revamped all the memory handling/error handling etc, it was a core concept. | 19:50.14 |
| so it's pretty much as if it had been designed in from the start. | 19:50.28 |
LeastOne | I'm looking to downsample PDF files using GS in interactive mode, can anyone confirm if that is possible? | 20:08.48 |
saper | LeastOne: downsample as in "gs -r<somelowerresolution>" ? | 20:15.53 |
LeastOne | Correct | 20:20.28 |
| I can do it in non-interactive mode using -dBATCH, but would like to process several jobs in sequence in interactive mode if possible. | 20:21.31 |
saper | write a script? | 20:21.56 |
| or | 20:22.19 |
| do you need a PostScript equivalent of "-r" ? | 20:22.28 |
LeastOne | I'm not sure I know how to answer your question ... | 20:23.28 |
| I'd like to keep the gs process running and when needed hand it a pdf file to downsample. | 20:24.30 |
saper | well I think (not an expert) such stuff is in the "currentpagedevice" dictionary, but I would definitely run gs in batch in your case | 20:26.54 |
| or you could say | 20:27.16 |
| (filename.pdf) run | 20:27.20 |
LeastOne | Ok, I was trying to do a variant of "(filename.pdf) run" | 20:27.42 |
saper | and it will go to your output device | 20:27.42 |
LeastOne | However I was trying to execute that command with -sDEVICE=pdfwrite but it would fail leading me to wonder if that were even possible | 20:28.25 |
saper | should work let me check | 20:28.44 |
| LeastOne: I just did "ggs -r75 -sDEVICE=pdfwrite -sOutputFile=out.pdf" | 20:30.54 |
| er, 'gs -r75 | 20:31.04 |
| and ran (a.pdf) run (b.pdf) run (c.pdf) run | 20:31.14 |
LeastOne | Gotcha ... I see the first thing I was doing wrong ... | 20:31.20 |
| I was wanting to specify the output file name when providing the input file ... I know see how the output path is intended to be used. | 20:31.55 |
saper | add "-dNOPAUSE" | 20:32.02 |
| gs -r75 -sDEVICE=pdfwrite -sOutputFile=output.pdf -dNOPAUSE -dBATCH input.pdf :) | 20:32.50 |
LeastOne | Yea, ok ... I think you've got me on the right track here ... I'll give that a try | 20:33.30 |
saper | gs is quite good in the batch mode | 20:33.40 |
| although learning Postscript is fun | 20:33.50 |
LeastOne | Hmm ... I'm getting an invalidfileaccess error ... | 20:36.10 |
| Maybe I need to set an explicit output path ... | 20:37.03 |
| Hmm no luck | 20:38.16 |
rico | hi | 20:42.03 |
saper | LeastOne: cannot write? | 20:43.31 |
| and output.pdf should be different than input.pdf | 20:43.49 |
LeastOne | Yea, must be something with other switches I have enabled ... I'm scaled back to your command and now its working | 20:43.59 |
| Agreed, out different than in | 20:44.08 |
saper | stick to my commandline then :) | 20:44.39 |
LeastOne | :) | 20:45.20 |
| Here's the command I'm attempting ... does anything stick out as obviously wrong ... ? | 20:45.40 |
| gs -q -dNOPAUSE -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/printer -dEmbedAllFonts=true -dSubsetFonts=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=72 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=72 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=72 -dUseCIEColor -sOutputFile=output.pdf | 20:45.47 |
| If I remove the -dSAFER switch it succeeds, any dangers I should be aware of in turning that off? | 20:54.06 |
| Now I've got a new question ... can I force the output file to flush? Currently it won't finish writing to the file until I quit gs | 20:57.24 |
| I have to step away for a bit, but if anyone has a comment concerning the flushing of the pdf file I'd greatly appreciate it, I'll check back later. | 21:01.06 |
| saper: Thank you for your help, very grateful! | 21:01.44 |
aleray_ | hi, how can I remove cropmarks from my pdf ? | 21:50.01 |
| hi, i'm trying to devellop an app with a plugin architecture. I implemented some kind of factory pattern, with decorator to register the plugins. I'd like to autodiscover the plugins (if they are located in an other app for instance but can't find how | 22:40.33 |
| any idea? | 22:40.37 |
ray_work | aleray_: PDF's have several "boxes" that define the design boundaries of the page. MediaBox is the outermost, CropBox is within that and there are also TrimBox, ArtBox, and others. Don't ask me why so many -- please consult the PDF Reference Manual. | 23:23.48 |
| aleray_: so all you really need to do is to select the correct one. Ghostscript has a -dUseCropBox command line argument to allow for that particular "inset" to be used to set the page box. | 23:25.15 |
saper | LeastOne: Another happy customer^G :) | 23:32.21 |
| Forward 1 day (to 2012/10/10)>>> | |