{"id":3782,"date":"2022-11-29T08:18:14","date_gmt":"2022-11-28T23:18:14","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=3782"},"modified":"2022-11-29T20:53:47","modified_gmt":"2022-11-29T11:53:47","slug":"pdf-is-no-longer-output-well-in-chromiums-headless-environment","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2022\/11\/29\/pdf-is-no-longer-output-well-in-chromiums-headless-environment\/","title":{"rendered":"Chromium\u306eheadless\u74b0\u5883\u3067PDF\u304c\u3046\u307e\u304f\u51fa\u529b\u3055\u308c\u306a\u304f\u306a\u3063\u3066\u56f0\u3063\u305f"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\u6700\u8fd1\u306e\u30b9\u30e9\u30a4\u30c9\u306f Asciidoc \u3067\u66f8\u3044\u3066\uff0cReveal.js \u306ehtml \u306b\u5909\u63db\u3057\u3066\u767a\u8868\uff0c\u305d\u306ehtml \u3092Chrome \u306eheadless \u30e2\u30fc\u30c9\u3067PDF \u306b\u5909\u63db\u3057\u3066\u3044\u307e\u3057\u305f\uff0e<br \/>\n\u3053\u3051\u308c\u3092\u884c\u3063\u3066\u3044\u305f\u7aef\u672b\u3092\u5909\u66f4\u3057\u305f\u305b\u3044\u304b\u3053\u308c\u304c\u3046\u307e\u304f\u3044\u304b\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"paragraph\">\n<p>\u5f15\u6570\u306f\u3053\u3093\u306a\u611f\u3058\u3067<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>               chromium --user-data-dir=$TMPDIR --headless --disable-gpu --print-to-pdf=\"${PDF}\" \"$URL?print-pdf\"; \\<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u51fa\u529b\u3055\u308c\u308bPDF\u306fCSS\u304c\u8db3\u308a\u306a\u3044\u3088\u3046\u306a\u3082\u306e\u3084\uff0c\u771f\u3063\u767d\u306a\u3082\u306e\u306b\u306a\u308a\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"data:image\/jpg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wEEEAAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQILEQAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQIL\/8IAEQgBjwH0AwEiAAIRAQMRAf\/EAC4AAQEAAwEBAQAAAAAAAAAAAAAGAQQFAwcCAQEBAAAAAAAAAAAAAAAAAAAAAf\/aAAwDAQACEAMQAAAAnqLTsiZUyJlTCZUwmVMJlTCZUwmVMJlTCZUwmVMJlTCZUwmVNzjlOl7Vx3W\/BzHT9DkOlunAUyJlTCZUwmVMJlTCZUwmVMJlTCZUwmVMJlTCZUwmfCl\/R8rFUlZJWB5ugjnugOe6A57oDnugOe6A57oDnugOe6A57oDnugOe6A5+OiOe6A5+OiOe6A52egOe6A57oDnugOe6A57oDnugOe6A57oDnugOe6A57oDnugNDy2dGvnIKOwj7A3RAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnp7mnXzcFHYR9gbogAAAAAAAAAAAAAAAAAAAAAAAAAAADT09zTr5uCjsI6xN0QAAAAAAAAAAAAAAAAAAAAAAAAAAABp6e5p183BRWMdYm6IAAAAAAAAAAAAAAAAAAAAAAAAAAAA09Pc06+bgorGOsTdEAAAAAAAAAAAAAAAAAAAAAAAAAAAAaenuadfNwUVjHWJuiAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT3NOvm4KKxjrE3RAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnp7mnXzcFFYx1ibogAAAAAAAAAAAAAAAAAAAAAAAAAAADT09zTr5uCisY6xN0QAAAAAAAAAAAAAAAAAAAAAAAAAAABp6e5p183BRWMdYm6IAAAAAAAAAAAAAAAAAAAAAAAAAAAA09Pc06+bgorGOsTdEAAAAAAAAAAAAAAAAAAAAAAAAAAAAaenuadfNwUVjHWJuiAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT3NOvm4KKxjrE3RAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnp7mnXzcFFYx1ibogAAAAAAAAAAAAAAAAAAAAAAAAAAADT09zTr5uCisY6xN0QAAAAAAAAAAAAAAAAAAAAAAAAAAABp6e5p183BRWMdYm6IAAAAAAAAAAAAAAAAAAAAAAAAAAAA09Pc06+bgorGOsTdEAAAAAAAAAAAAAAAAAAAAAAAAAAAAaenuadfNwUVjHWJuiAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT3NOvm4KKxjrE3RAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnp7mnXzcFFYx1ibogAAAAAAAAAAAAAAAAAAAAAAAAAAADT09zTr5uCisY6xN0QAAAAAAAAAAAAAAAAAAAAAAAAAAABp6e5oV86BRUc7Vn5yB+f0GMhjIYyHn+zLHgbDyHqxg\/T85Mvz4mw1\/Q9HmPRgZfnJl+R+n5H6YGWBlgZYGWBlgZYGWBlgZYGWBn85yfnHr4nzYFJ34baLbwkcFd6Rot\/CQwWfhKYLfWksFhrTX6K38Sotv1ECw\/EiLH1iRZ+Ml5lZvwgu0ILzxiclHvxmSn2I\/JYesT+i4RItkSLZEi2RItkSLZEi2RItkSLZEi2RItkSLfTlPMrsSQ5YP\/\/EACkQAAECBAYDAQADAQEAAAAAAAMABAECETMGEBQVFjESE1AFIiNAMiH\/2gAIAQEAAQgA\/L\/Oj+geMi4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2y4u2XF2ydYakGCecKwxfc\/6zODCKSKncuo08SFPAMsJdU4qpXZySSzQ1TisYoLk0aQJrHE45Yyt4liOpP9DmZxCSHoNGOmJVYbn8TuFF1JDvVjWrGtWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjUXIpoUjqxrVjWrGoORSwhCGrGtWNQdClhCENWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjWrGtWNasa1Y1qxrVjWrGtWNaqSkYorqScJYQWHLzhNOy\/be2YokJoSnqsOXnCadl+28tJx0bLDl5wmnZftvLScdGyw5ecJp2X7by0nHRssOXnCadl+28tJx0bLDt5wmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvLScdGyw7eOmnZftvbMUTx8XFFh284UDT+c9JZixlliqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqpVUqqVVKqlVSqMxYRlgpJpp\/LyPGPoLlhy+deI4dxlFGeWVesKjKGFFEYYVrCQMZpoQ8AqEgYyQnXrCpZAzQjFesKj6IeVfAa8BqaYcJoyqihLWMILwGvEVaKEooxjCHrGoyilhGMfa1jRSlbT0hL\/Uv6l\/UpZBzLwFGfxUYN5e\/APnCVTQbyf8AVAR8fGaVvJGEJvEXlGWHrGvWNesa9Y16xr1jXrGvWNesa9Y16xr1jXrGvWNesa9Y16xr1jXrGvWNesa9Y1AY14glmhBfwh\/4nEZYBnyw3ecKYRdT5wkhGBRQi4EWcg5pAyTjkHLO8GQkP4DuFQhklIaaM8sZ2cJYAAaQ3lMK3OpgmiYU0CDiSM8sCjOOE9G8hpYzxJPJ5zkhBS\/9QRpZ5pKSBFNJNPNNJJ4kJNkS2RRAWsIKVoWEwplSKpFUio1llQoQgWMIOGkCn84ghGEwIRdRce6HgDzo383Qfd4QULs\/+eHcE5GSaeskBnjGXyJLGRrLLFNXhmkZ4i3d2ofsvJet3dreHkFvDyK3l5CEVu7tby8jRbu7W8vKUW7u1L+09l631+t9frfX8Ot\/\/RW\/\/orfX631+t9frfX63x\/GC3h4t4eLeHi3h4t4eLd3ah+y8hWm7u1D9l5L1u7tQ\/ZeSxrDd3al\/aey9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1vr9b6\/W+v1u7tbu7W7u6Zf\/EADMQAAECAgkDBAIBAwUAAAAAAAABAgOxBBARUlNikqLhMVCREhMhIjJRgUBBYTNCcXKC\/9oACAEBAAk\/AH+ljUtcpSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhSIhHcr21XE\/q7Vhp0tT4tIfp+ir0X9C2xPt\/a6hCRW\/wAjERev+FREGL46dCH0Yi22dVUh2epetii\/ZXL\/AFLUV1phrKq4ITQmhNCaE0JoTQmhNCaE0JoTQmhNCaE0JoTQmhNCaE0JoTQS1CaVTQSxEJoTQSxEJoTQmhNCaE0JoTQmhNCaE0JoTQmhNCaE0JoTQmhNCaE0JoJ06\/KFx1WGZZd8RET2lsS23pVhmWXfMJ9WGZZd8wn1YZll3zCfVhmWXfMJ9WGZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvmE+q4ZZd8wn1XDLLvnq\/0l+VX91YY5rG\/FlqfKkXqiL05I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSNt5I23kjbeSL1WzpyREeiKnQuLVcLFt\/aDWqqpdGs0jWratn4jWaRjfhLo1mkaxEXKNZpGNsRbPxGs0jWIidVVEQYzwQ2eCFD\/mxCAwgMIbPAxlv6sQYy1OvwhDZ4GNsRLfxGJ8rYn1QYi2pdQg7EIOxCDsQhIn\/AJQY3pb+J7afwgxtq5T0J\/yiDWL6uliIe2lq2JaiDG\/CXSGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwQ2eCGzwehFXp8IKifwL1aqVYY76+nwLavpUfYiL4\/ydfcUXo61U\/Z+kF+rlWxDqrB\/wAI1EX\/ACX1H9E+VFs+7VFX0IliIjhyrb0E+bUWVfW1Oi2C2q5G2\/wgiWOsquqNT0+4rlP9rulqr9RFEURS3+5hjHfl9+v2b8CdIZCVzUQbY61bUET87FWz5RvUut\/qE62JbdsUS\/b9v2dUSzrb\/aqz7JYtokPSe3pEh6T29J7ek9vSJD0nt6RIek9Fn\/USHpPRpHM0jmaRzNI9mkezSOZpHM0jmaRzNIrNJ6NJ6NJ6NJ6NJ6NJ7ek9vSJD0nt6RIek9vSe3pPRpHM0jmaRzNI5mkczSOZpHM0jmaRzNI5mkczSOZpHM0jmaRzNI5mkczSOZpHM0jmaRzNI5mkczSe3pEh6RIemr\/\/EABQRAQAAAAAAAAAAAAAAAAAAAJD\/2gAIAQIBAT8ASD\/\/xAAUEQEAAAAAAAAAAAAAAAAAAACQ\/9oACAEDAQE\/AEg\/\/9k=\" alt=\"revealjs2pdf01\"\/><\/span><br \/>\n<span class=\"image\"><img decoding=\"async\" src=\"data:image\/jpg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wEEEAAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQILEQAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQIL\/8IAEQgB9AF0AwEiAAIRAQMRAf\/EAC4AAQADAAMBAAAAAAAAAAAAAAADBQYCBAcBAQEBAAAAAAAAAAAAAAAAAAAAAf\/aAAwDAQACEAMQAAAAodD09gZtpEZtpBm2kGbaQZtpBm2kGbaQZtpBm2k6ZTrLnVUtOBXLCUqljZRnGkGbaQZtpBm2kGbaQZtpBm2kGbaQZuLRjysVptXk90dNZisWYrFmKxZisWYrFmKxZisWYrFmKxZisWYrFmKxZisWYrFn8K1ZfSsWYrFmKxZisWYrFmKqG1pjzgGl3WF3RPw5iNII\/vMAAAAAAR8Jx1+Uw4feQ+ceYhTD5x5gAAAAACGot6g82Bpd1hd0TgAKjmWiviLVRzFsouyWis5lgqpSwdPgd9Ud47KKM7KhF8znaLlD8J3Q6Zdq6wPoAAAAIai3qDzYGk3eD3hOAD4rpTuuh2CdWcixdH6drn0oyw+9OcldLgWDo\/DvugO+6Y7iGYA+fQAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TgAAAAAAAAAAAAAAAAAAAAhqLeoPNgaPeYPeE4AAAAAAAAAAAAAAAAAAAAIai3qDzYGj3mD3hOAAAAAAAAAAAAAAAAAAAACGot6g82Bo95g94TnA5uHAmQCdDxOwi+EzrjsOtKSIPpMi+EyHgdl1x2EH0mQfSZDxOwhEzr9gAAAAI5CGot6g82Bo9zh780aj+F6oheqIXqiF6oheqIXqiF6oheqIXqiF6oheqIXqiF6oheqIXqiF6oheqIXqiF6oheqLiW1Vy+nmgNLp8tenejj6xYfIIzs8upyOc1X2jucet8JefW+E\/LhKOX2E5cPsR2+DgQyR8jsOAkRxE8XGAsYYISx+QjsuA5uA5uA5uA58fkB2Iuv9PPwAAAAAAAAAAAAAAAAAAAAAAAAf\/\/EAD0QAAEDAQMFEAECBgMBAAAAAAEAAgMRBAUSEzJBUXMGEBYhIjEzUFJTVHFykqLBkRQwFSNAQmGhICSBYv\/aAAgBAQABPwC6bt\/iMzw5+FjBUrgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/MuDFk7+ZcGLJ38y4MWTv5lwYsnfzLgxZO\/mXBiyd\/Mp9zMIheYp34wN7cvn2v0s\/o7S6dr2uZiwAEvQltrxGcNATWoCracgxtXZQnnp\/iqyttFDhBFBztTZ7XJG1wbx0Lhxc6c+3Ukox3GjPaWRzOezmzeJPfbnczS3knmCbUNAJrQf0M+WMf8kgPqKE8y5QgOPOwce9ubcWvtXoamyzPrghLqagSsVp8O\/2lYrT4d\/tKxWnw7\/aVitPh3+0rFafDv8AaVitPh3+0rFafDv9pWK0+Hf7SsVp8O\/2lYrT4d\/tKxWnw7\/aVitPh3+0rFafDv8AaVitPh3+0rFafDv9pWK0+Hf7SsVp8O\/2lYrT4Z\/tKxWnwz\/aVitPh3+0rFafDv8AaVW0+Gf7SsVp8O\/2lVtPhn+0rFafDv8AaVitPh3+0rFafDv9pWK0+Hf7SsVp8O\/2lYrT4d\/tKxWnw7\/aVitPh3+0rFafDv8AaVitPh3+0rFafDv9pWK0+Hf7SsVp8O\/2lYrT4d\/tKxWnw7\/aVitPh3+0rFafDv8AaVitPh3+0p0kzAS+EtGsghG0l7HgM\/sO9uczrXswrszJtp9bxewGhcFjZ2gjIwf3BFzQaFwqsba0xCur92orSvGi5recgLGztD8qoRc1oqSAFjZ2gg9hIAcFUawstF3jfyhLGSRjb+VUawspH22\/u3n0B8inNw4uVX+URSm9uczrXswrszJtp9b01hjkeZC81RsrGc7iTWqfYIywNLyprIxzmOc41bSg8kLGxkokxGo\/dtVlZLIHl7gUbujA6R6lu2Fw5TnZ1U+wNwgCRybYIwxzcRNdJ40LGxri8GhLcKFjjDmHso2ZjWtFeIEmifYI8LgXE4nVTbuax7nCV3GjZScX8w8baEI2VjTXFU1r9pjcDQ3V+5efQHyKk07N29uczrXswrszJtp9dV3n0B8ipNOzdvbnM617MK7MybafX9PUVpXjRIHOUSB\/RXn0B8ipNOzdvbnM617MK7MybafX\/ETTfp2TY3fqTacJZ\/jFSlEL1noyrY\/5gFDoaakUKjvKUSsa8RhmINNPRiTbTIP1bJS5okgdLEnnLMiidI4uLIcArz4uNzlKSyOeSF7nRQTNIoa1b\/c1B8\/6W1B5e10DHEOrz4+Nq\/WyB45LC9pkbxOpWgBQvSYAlrGlrcFW8zjiUVunkMMYyNJeY10UqprLE60zR4ywsY0sBeeUSp2vaxkbZHh+AAuDi2NqsFnjN2w5WV5aWAklyhjifa2GylxYxrsby4lpJU8Rh8M+Uu5LBjxE+5WyS2wwyOjEbWtbnc5ToIGWWkkrm8eIvL6GqiebS8APcYGMIc8mmMlRMhfaxEZHAh5xSiQ0e0czQrdA7ES2KYufKA0nCRUq1sybbLEQ8OMlQH8\/OFZZGxPkmLeMQvxsazDShVnisQEUgwB5GiQlQyxwz28yPDQHtPxU08k+V5Rh\/kNcyugvKke42SaQukZJHK1hGOo4yOYqeAR2myME8lJXvryz2VZXOEtoiJqI3NofMft3n0B8ipNOzdvbns61egK7MybafX\/HC2taCutQ2aKGIRgVaNawM7I\/CLGnnaFhaKcQQa0CgAA1IgHnAWBnYb+EII2zPlHO4AfhBjBzNAUkcclMbGuprFUWtcKOAI1FYW4cNBTUgABQBCNjXFwY0E85oiA4EEAhEAihAKLQ4FpAIOhGKMswFjS3VROhie5j3MBc3NOpPiikz2NdxU4wmWazxHEyJrSm2eBrsTYmB2sAJ0ML3B7o2lw5iQnMa4gkLAylMIpqoi1pIJA4k1rW1oOc1P7d59AfIqTTs3b257OtXoCuzMm2n1\/xivGbC7KZ2Iho5gRUiq\/ijsXHHQAlfxKYFwc0Z\/FRRW58hIMeHkk1TbytLTFlAMx2Liziv4jIIpMMdDQ0QvRwo3JDF91ojeL34qMzKnzRvR3MYqFG8pGtiIj0jEv4m8kARihNPpfrHthjOTNSSC45ooV\/FHaYgheL8m\/DH5Jt6PLW0jBNG1X660SSMwsoDRMvRwYMbauqQU+85HRnCyhTL0L3tbgArrK\/iLmuo2LX8VBb3yvYMlUO7JrT+ivPoD5FSadm7e3PZ1q9AV2Zk20+v3KD9ktDgQRUFNY1go0UCMbHODi0VHMUWhwIIqCmtawUaKD+ivPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPrqu8+gPkVJp2bt7c9nWr0BXZmTbT66rvPoD5FSadm7e3PZ1q9AV2Zk20+uq7z6A+RUmnZu3tz2davQFdmZNtPremjtRe8sdyTzaKcSAteGjqc+hGO3CjmOHNpQbeJa4Pcz\/ABRYby53OYgLxAFXMogy8WF3LaW6KrDbsI5QqEDbg4F+GgBzUBeRznMWG8Q3OYmxW8M5clTRN\/WtDq4KUNEBeXO5zE0Xg2lXMon\/AK4B5bh5uIIstgaebjoV\/wB\/meWURN5MDQMBTv4gxpLcJTordUFrqDSKoR2rCcTz+UWWzDxO1hFlva4FpaG1Rjtmv\/esJgtzC\/EW4SOJFl49ttEBbGvcMQwJgtjS0vc2gCYLc5zC9wDdQ\/Zla8huA8YKiZamTVc+se9efQHyKk07N29uezrV6ArBIyNkuI0q\/wCllY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0FlY+0Fb5GyQkNKLKB5yeH+UanWd7c6aPtXoCOUJkJEhNeLDzIhgJH8z5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPkuRqk+S5GqT5LkapPknUpyRJWo7SY3lPIElNGJSZj\/Sd7c3n2r0NWWjxlnFUCpTXVe4U4g0FPtMLHEHnAqUx+N9KcWCqMzMeD+6lU+dkNnE0mbQEoSBxjw0LXaQVNbrPA97HmhazH\/4hK1+SLKFr9IKkkZGHE6EZQQwtpRx50y0xvHPh802aN5AbICTqKmke1woTShPEm43NDhIeMV5ggx5I\/mn8BOcGAlzqBMla972tObT\/a\/Utx4KEHHh3pXuYyrRU1TrVI0AljaFoI\/9UU75S8ANBaaaVWX\/AOP9qsv\/AMf7QyhIzP8AaleGNOvDVTzx2ePG8EhR2yKZkjoxmqR7Y2YiK0CFoDmOIYRSn+1NKIm1ybn\/AOAmyiTJlua5uL9qWZsVKtJWWjq0ChqdafMx8GJnM7e3Ovax1qJ7DV\/18o5\/HyhxhMljDnurQYAFIyzSOc414wopYw4nFxCMBYoBKZRUEtIKnEM1lED3ZzRWiidAwwsZRrGK02ayWmV8jyalmAf4URgjyMcfJYxSvgkxayKVTXQtybGcQBToLMWsbjADf8hQxRMcHukaX8ekJxY+QctlMOtNMbWhokZxCmcEHxgj+Yz3KQxSNoZAOOtQQmZGOtHjRp1CiMUDnYjIK4q84WUj7bfypJIyG8sZ30v+vyqSPFWhv\/gTDZo3Oc0kEgArLw9pZeHtIWiEEHEpJmOa4A841K0PjeA0P0efOKJmTjY5rTxUo0auOqtZZM0MEpFCDUKICNsgMrnlxHOrRJFIx0eLnACEsZe2hAAaQspH22\/lZSPtt\/Kykfbb+VlI+238rKR9tv5WUj7bfyspH22\/lZSPtt\/Kykfbb+VaHxScWMgjSE3ItIIe\/idX6TnxiLA0ni19Y\/\/EABQRAQAAAAAAAAAAAAAAAAAAAJD\/2gAIAQIBAT8AQD\/\/xAAUEQEAAAAAAAAAAAAAAAAAAACQ\/9oACAEDAQE\/AEA\/\/9k=\" alt=\"revealjs2pdf02\"\/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>make \u304b\u3089\u547c\u3093\u3067\u3044\u308b\u306e\u3067\u624b\u52d5\u3067\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u5b9f\u884c\u3057\u3066\u3082\u540c\u3058\uff0c <code>--headless<\/code> \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u524a\u3063\u3066\u624b\u52d5\u3067 Ctrl + p \u3067PDF \u51fa\u529b\u3059\u308c\u3070\u554f\u984c\u306a\u304f\u51fa\u529b\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Firefox \u306b\u306fPDF \u51fa\u529b\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u306a\u3044\u306e\u3067\u3059\u304c\u753b\u50cf\u51fa\u529b\u304c\u3067\u304d\u308b\u306e\u3067\u753b\u50cf\u66f8\u304d\u51fa\u3057\u3092\u3057\u3066\u307f\u308b\u3068\u6c42\u3081\u308b\u7d50\u679c\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ firefox --screenshot \/tmp\/page.png --window-size=1280 \"file:\/\/\/`pwd`\/slide.html#print-pdf\"<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5404\u30da\u30fc\u30b8\u3092\u3053\u308c\u3067\u753b\u50cf\u306b\u51fa\u529b\u3057\u3066\u7d50\u5408\u3057\u3066PDF\u306b\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u304c\uff0c\u6587\u5b57\u60c5\u5831\u304c\u6d88\u3048\u3066\u3057\u307e\u3044\u307e\u3059\u2026\u2026\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>wkhtmltopdf<\/code> \u3082\u8a66\u3059\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u3067\u8fd1\u3044\u3082\u306e\u304c\u51fa\u6765\u307e\u3059\u304c\u30b5\u30a4\u30ba\u3084\u4f59\u767d\uff0c\u30d5\u30a9\u30f3\u30c8\u304c\u9055\u3044\u307e\u3059\uff0e\u3082\u3046\u5c11\u3057\u9811\u5f35\u308c\u3070\u826f\u304f\u51fa\u6765\u305d\u3046?<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ wkhtmltopdf --enable-local-file-access --orientation Landscape --page-size B5 --margin-top 0 --margin-bottom 0 --margin-right 0 --margin-left 0 \"file:\/\/`pwd`\/slide\/slide.html?print-pdf\" \/tmp\/slide.pdf<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u691c\u7d22\u3057\u3066\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>[<a href=\"https:\/\/stackoverflow.com\/questions\/68849281\/headless-chrome-command-line-set-timeout\">pdf &#8211; Headless Chrome command line &#8211; set timeout &#8211; Stack Overflow<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u3061\u3089\u3092\u53c2\u8003\u306bChromium \u306b <code>--run-all-compositor-stages-before-draw<\/code> \u3068 <code>--virtual-time-budget<\/code> \u3092\u6307\u5b9a\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u66f8\u304d\u51fa\u305b\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e <code>--virtual-time-budget<\/code> \u306e\u5024\u306b\u3064\u3044\u3066\u306f\u74b0\u5883\u306b\u3088\u308a\u5909\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ chromium --headless --run-all-compositor-stages-before-draw --virtual-time-budget=9999999 --print-to-pdf=\/tmp\/slide.pdf file:\/\/`pwd`\/slide\/slide.html?print-pdf<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Makefile \u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>-               chromium --user-data-dir=$TMPDIR --headless --disable-gpu --print-to-pdf=\"${PDF}\" \"$URL?print-pdf\"; \\\n+               chromium --user-data-dir=$TMPDIR --headless --run-all-compositor-stages-before-draw --virtual-time-budget=999999 --print-to-pdf=\"${PDF}\" \"$URL?print-pdf\"; \\<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u66f8\u304d\u51fa\u305b\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/gitlab.com\/matoken\/kagolug-2022.11\/-\/blob\/master\/slide\/slide.pdf\" class=\"bare\">https:\/\/gitlab.com\/matoken\/kagolug-2022.11\/-\/blob\/master\/slide\/slide.pdf<\/a>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/gitlab.com\/matoken\/kagolug-2022.11\/-\/blob\/master\/slide\/slide.pdf.sig\" class=\"bare\">https:\/\/gitlab.com\/matoken\/kagolug-2022.11\/-\/blob\/master\/slide\/slide.pdf.sig<\/a><\/li>\n<\/ul>\n<p><iframe class=\"speakerdeck-iframe\" frameborder=\"0\" src=\"https:\/\/speakerdeck.com\/player\/e76503c6f3394f9b92d74af490e7df08?slide=1\" title=\"OpenAI\u306eWhisper \u3067\u30aa\u30d5\u30e9\u30a4\u30f3\u6587\u5b57 \u8d77\u3053\u3057(STT)\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" style=\"border: 0px; background: padding-box padding-box rgba(0, 0, 0, 0.1); margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 560px; height: 408px;\" data-ratio=\"1.3725490196078431\"><\/iframe><\/p>\n<\/div>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u74b0\u5883<\/div>\n<div class=\"content\">\n<pre>$ dpkg-query -W chromium firefox-esr wkhtmltopdf\nchromium        107.0.5304.110-2\nfirefox-esr     102.5.0esr-1\nwkhtmltopdf     0.12.6-2+b1\n$ lsb_release -dc\nNo LSB modules are available.\nDescription:    Debian GNU\/Linux bookworm\/sid\nCodename:       bookworm\n$ arch\nx86_64<\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u306e\u30b9\u30e9\u30a4\u30c9\u306f Asciidoc \u3067\u66f8\u3044\u3066\uff0cReveal.js \u306ehtml \u306b\u5909\u63db\u3057\u3066\u767a\u8868\uff0c\u305d\u306ehtml \u3092Chrome \u306eheadless \u30e2\u30fc\u30c9\u3067PDF \u306b\u5909\u63db\u3057\u3066\u3044\u307e\u3057\u305f\uff0e \u3053\u3051\u308c\u3092\u884c\u3063\u3066\u3044\u305f\u7aef\u672b\u3092\u5909\u66f4\u3057\u305f\u305b\u3044\u304b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[739,7,6,90],"tags":[393,740,442],"class_list":["post-3782","post","type-post","status-publish","format-standard","hentry","category-bookworm","category-debian-linux","category-linux","category-testing","tag-chromium","tag-headless","tag-pdf"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=3782"}],"version-history":[{"count":3,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3782\/revisions"}],"predecessor-version":[{"id":3786,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3782\/revisions\/3786"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=3782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=3782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=3782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}