{"id":7126,"date":"2025-01-14T19:32:40","date_gmt":"2025-01-14T19:32:40","guid":{"rendered":"https:\/\/howtogeek.blog\/zh\/?p=7126"},"modified":"2025-01-14T19:32:40","modified_gmt":"2025-01-14T19:32:40","slug":"exploring-doom-and-tetris-embedded-within-a-pdf-document","status":"publish","type":"post","link":"https:\/\/howtogeek.blog\/zh\/exploring-doom-and-tetris-embedded-within-a-pdf-document\/","title":{"rendered":"\u63a2\u7d22 PDF \u6587\u4ef6\u4e2d\u5d4c\u5165\u7684\u300aDOOM\u300b\u548c\u300a\u4fc4\u7f85\u65af\u65b9\u584a\u300b"},"content":{"rendered":"<h2>\u63a2\u7d22\u4ee4\u4eba\u8208\u596e\u7684 PDF \u904a\u6232\u4e16\u754c\uff1a\u5728 PDF \u4e2d\u73a9\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM\uff01<\/h2>\n<p>\u8a31\u591a\u4eba\u8a8d\u70ba PDF \u53ea\u662f\u7528\u65bc\u986f\u793a\u6587\u5b57\u548c\u5716\u50cf\u7684\u975c\u614b\u6587\u4ef6\uff0c\u4f46\u6700\u8fd1\u7684\u9032\u5c55\u5df2\u5c07\u5b83\u5011\u8f49\u8b8a\u70ba\u904a\u6232\u7684\u4e92\u52d5\u9014\u5f91\u3002\u900f\u904e\u5275\u65b0\u7684 PDF \u8173\u672c\u548c\u700f\u89bd\u5668\u6280\u8853\uff0c\u63a2\u7d22\u5982\u4f55\u5728 PDF \u6587\u4ef6\u4e2d\u73a9\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM \u7b49\u7d93\u5178\u904a\u6232\u3002<\/p>\n<h2>\u5728\u700f\u89bd\u5668\u4e2d\u4f7f\u7528 PDF \u904b\u884c\u4fc4\u7f85\u65af\u65b9\u584a<\/h2>\n<p>Thomas Rinsma \u662f\u4e00\u4f4d\u5c08\u9580\u7684\u5b89\u5168\u5206\u6790\u5e2b\u548c\u958b\u767c\u4eba\u54e1\uff0c\u4ed6\u7387\u5148\u63d0\u51fa\u4e86\u5728 PDF \u6587\u4ef6\u4e2d\u904b\u884c\u4fc4\u7f85\u65af\u65b9\u584a\u7684\u5168\u529f\u80fd\u7248\u672c\u7684\u60f3\u6cd5\u3002\u9019\u7a2e\u7368\u7279\u7684\u9ad4\u9a57\u53ef\u4ee5\u5728 Google Chrome\uff08\u548c\u5176\u4ed6\u57fa\u65bc Chromium \u7684\u700f\u89bd\u5668\uff09\u4ee5\u53ca Mozilla Firefox \u7b49\u6d41\u884c\u7684\u7db2\u9801\u700f\u89bd\u5668\u4e2d\u7372\u5f97\u3002\u597d\u5947\u7684\uff1f\u5617\u8a66\u4e00\u4e0b<a href=\"https:\/\/th0mas.nl\/downloads\/pdftris.pdf\" target=\"_blank\">Rinsma \u7684 PDF \u6a94\u6848<\/a>\u3002<\/p>\n<figure class=\"wp-block-image\"><img alt=\"PDF \u4e2d\u4fc4\u7f85\u65af\u65b9\u584a\u7684\u87a2\u5e55\u622a\u5716\" class=\"wp-image\" decoding=\"async\" height=\"905\" loading=\"lazy\" src=\"https:\/\/cdn.howtogeek.blog\/wp-content\/uploads\/2025\/01\/clipboard-jan-14-2025-at-2-24-pm.webp\" title=\"PDF \u4e2d\u4fc4\u7f85\u65af\u65b9\u584a\u7684\u87a2\u5e55\u622a\u5716\" width=\"1245\"\/><figcaption>\u4ee4\u4eba\u8208\u596e\u7684\u87a2\u5e55\u622a\u5716\uff0c\u5c55\u793a\u4e86\u5728 PDF \u4e2d\u904b\u884c\u7684\u4fc4\u7f85\u65af\u65b9\u584a\u3002<\/figcaption><\/figure>\n<p>Rinsma \u5728\u5176\u5167\u5bb9\u8c50\u5bcc\u7684\u90e8\u843d\u683c\u6587\u7ae0\u4e2d\u8a73\u7d30\u95e1\u8ff0\u4e86 PDF \u5728\u73fe\u4ee3\u74b0\u5883\u4e2d\u7d93\u5e38\u88ab\u5ffd\u8996\u7684\u529f\u80fd\u3002\u96d6\u7136\u6211\u5011\u7fd2\u6163\u5c07 PDF \u4f5c\u70ba\u552f\u8b80\u6587\u4ef6\u67e5\u770b\uff0c\u4f46\u5176\u4e2d\u5b58\u5728\u76f8\u7576\u5927\u7684\u8173\u672c\u7de8\u5beb\u6f5b\u529b\uff0c\u5c24\u5176\u662f\u5728\u4f7f\u7528 PDFium\uff08\u7531 Chromium \u4f7f\u7528\uff09\u6216 PDF.js\uff08\u91dd\u5c0d Firefox\uff09\u6642\u3002<\/p>\n<h3>\u4e86\u89e3 PDF \u8173\u672c\u529f\u80fd<\/h3>\n<ul>\n<li><strong>\u52d5\u614b\u5167\u5bb9\uff1a<\/strong> PDF \u53ef\u4ee5\u5bb9\u7d0d\u8868\u55ae\u5143\u7d20\u3001\u6309\u9215\u548c\u8907\u9078\u6846\uff0c\u5f9e\u800c\u5be6\u73fe\u4e92\u52d5\u5f0f\u9ad4\u9a57\u3002<\/li>\n<li><strong>JavaScript \u6574\u5408\uff1a<\/strong>\u900f\u904e\u5408\u4f75 JavaScript \u8655\u7406\u7a0b\u5e8f\uff0c\u4f7f\u7528\u8005\u8207\u9019\u4e9b\u5143\u7d20\u7684\u4e92\u52d5\u53ef\u4ee5\u89f8\u767c\u4e8b\u4ef6\uff0c\u5f9e\u800c\u52d5\u614b\u4fee\u6539 PDF \u5167\u5bb9\u3002<\/li>\n<li><strong>\u57fa\u65bc\u7db2\u683c\u7684\u8a2d\u8a08\uff1a<\/strong>\u5404\u7a2e\u529f\u80fd\u5c31\u50cf\u904a\u6232\u7db2\u683c\u4e00\u6a23\uff0c\u5176\u4e2d\u6309\u9215\u5145\u7576\u73a9\u5bb6\u53ef\u4ee5\u900f\u904e\u9ede\u64ca\u6216\u4f7f\u7528\u6587\u5b57\u6b04\u4f4d\u4e2d\u7684\u9375\u76e4\u8f38\u5165\u4f86\u63a7\u5236\u7684\u300c\u50cf\u7d20\u300d\u3002<\/li>\n<\/ul>\n<h2>\u5728 PDF \u4e2d\u751f\u52d5\u5448\u73fe\u300aDOOM\u300b<\/h2>\n<p>Rinsma \u4e26\u6c92\u6709\u6b62\u6b65\u65bc\u4fc4\u7f85\u65af\u65b9\u584a\uff1b\u4ed6\u627f\u64d4\u4e86\u5c07\u50b3\u5947\u7b2c\u4e00\u4eba\u7a31\u5c04\u64ca\u904a\u6232\u300aDOOM\u300b\u79fb\u690d\u70ba PDF \u683c\u5f0f\u7684\u96c4\u5fc3\u52c3\u52c3\u7684\u4efb\u52d9\u3002\u8a72\u5c08\u6848\u5efa\u7acb\u5728<a href=\"https:\/\/github.com\/wojciech-graj\/doom-ascii\" target=\"_blank\">DOOM-ASCII<\/a>\u8a08\u5283\u7684\u57fa\u790e\u4e0a\uff0c\u8a72\u8a08\u5283\u5141\u8a31\u4f7f\u7528 ASCII \u5b57\u5143\u5728\u7d14\u6587\u5b57\u74b0\u5883\u4e2d\u73a9\u300aDOOM\u300b\u3002 Rinsma \u4f7f\u7528 WebAssembly \u548c<a href=\"https:\/\/emscripten.org\/\" target=\"_blank\">Emscripten<\/a>\u4f86\u7de8\u8b6f\u5b83\u4ee5\u5be6\u73fe\u700f\u89bd\u5668\u76f8\u5bb9\u6027\u3002<\/p>\n<p><a href=\"https:\/\/doompdf.pages.dev\/doom.pdf\" target=\"_blank\">\u9020\u8a2aDoomPDF<\/a>\u89aa\u81ea\u8a66\u7528 DOOM PDF \u3002\u622a\u81f3\u76ee\u524d\uff0c\u5b83\u53ef\u4ee5\u5728 Chrome \u548c\u57fa\u65bc Chromium \u7684\u700f\u89bd\u5668\u4e0a\u9806\u5229\u904b\u884c\u3002<\/p>\n<figure class=\"wp-block-image\"><figcaption>\u5f9e PDF \u4e2d\u904b\u884c\u7684\u300aDOOM\u300b\u4e2d\u6355\u6349\u5230\u7684\u7dca\u5f35\u6642\u523b\u3002<\/figcaption><\/figure>\n<h3>PDF \u904a\u6232\u7684\u6311\u6230\u8207\u5c40\u9650\u6027<\/h3>\n<p>\u5118\u7ba1\u300aDOOM\u300b\u79fb\u690d\u7248\u8b93\u4eba\u5011\u5c0d PDF \u4e2d\u7684\u904a\u6232\u6f5b\u529b\u6709\u4e86\u6709\u8da3\u7684\u4e86\u89e3\uff0c\u4f46\u4ecd\u5b58\u5728\u67d0\u4e9b\u9650\u5236\u3002\u4f8b\u5982\uff0c\u904a\u6232\u76ee\u524d\u4ee5\u55ae\u8272\u5716\u5f62\u904b\u884c\uff0c\u800c\u4e0d\u662f\u5305\u542b\u539f\u59cb\u7248\u672c\u4e2d\u7684\u5f69\u8272\u63cf\u7e6a\u3002\u6b63\u5982 Rinsma \u6307\u51fa\u7684\u90a3\u6a23\uff0c\u201c\u5373\u4f7f\u5c0d\u65bc GameBoy \u87a2\u5e55 (160x144x3)\uff0c\u9019\u4e5f\u5305\u542b\u8fd1 70,000 \u500b\u5b57\u6bb5\uff0c\u986f\u8457\u964d\u4f4e\u4e86\u6027\u80fd\u3002\u201d<\/p>\n<h2>\u4f7f\u7528 GitHub \u8cc7\u6e90\u9032\u4e00\u6b65\u63a2\u7d22<\/h2>\n<p>\u5c0d\u65bc\u5c0d\u6280\u8853\u611f\u8208\u8da3\u7684\u4eba\uff0cRinsma\u5728 GitHub \u4e0a\u63d0\u4f9b\u4e86<a href=\"https:\/\/github.com\/ThomasRinsma\/pdftris\" target=\"_blank\">PDF Tetris<\/a>\u548c<a href=\"https:\/\/github.com\/ThomasRinsma\/pdfdoom\" target=\"_blank\">DoomPDF<\/a>\u7684\u539f\u59cb\u78bc\u3002\u9019\u4e9b\u77e5\u8b58\u5c0d\u65bc\u6709\u5fd7\u65bc\u88fd\u4f5c\u4e92\u52d5\u5f0f PDF \u7684\u958b\u767c\u4eba\u54e1\u4f86\u8aaa\u975e\u5e38\u5bf6\u8cb4\u3002<\/p>\n<h3>PDF \u904a\u6232\u7684\u6700\u7d42\u60f3\u6cd5\u8207\u672a\u4f86<\/h3>\n<p>\u9019\u7a2e\u7a81\u7834\u6027\u7684\u65b9\u6cd5\u70ba\u672a\u4f86\u66f4\u8907\u96dc\u7684 PDF \u904a\u6232\u6253\u958b\u4e86\u5927\u9580\u3002\u4e86\u89e3\u8173\u672c\u9650\u5236\u548c\u529f\u80fd\u70ba\u6709\u8208\u8da3\u7a81\u7834\u50b3\u7d71 PDF \u4f7f\u7528\u754c\u9650\u7684\u958b\u767c\u4eba\u54e1\u63d0\u4f9b\u4e86\u4e00\u500b\u5145\u6eff\u5e0c\u671b\u7684\u524d\u666f\u3002<\/p>\n<p>\u8cc7\u6599\u4f86\u6e90\uff1a<a href=\"https:\/\/th0mas.nl\/2025\/01\/12\/tetris-in-a-pdf\/\" target=\"_blank\">\u6258\u99ac\u65af\u00b7\u6797\u65af\u746a<\/a><\/p>\n<h2>\u5e38\u898b\u554f\u984c\u89e3\u7b54<\/h2>\n<h3><strong>1. \u662f\u5426\u53ef\u4ee5\u5728\u4efb\u4f55\u700f\u89bd\u5668\u4e0a\u73a9\u9019\u4e9b\u904a\u6232\uff1f<\/strong><\/h3>\n<p>\u76ee\u524d\uff0c\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM PDF \u5728 Google Chrome \u548c\u5176\u4ed6\u57fa\u65bc Chromium \u7684\u700f\u89bd\u5668\u4ee5\u53ca Mozilla Firefox \u4e0a\u904b\u884c\u6548\u679c\u6700\u4f73\u3002\u5176\u4ed6\u700f\u89bd\u5668\u53ef\u80fd\u4e0d\u652f\u63f4\u6240\u9700\u7684\u8173\u672c\u529f\u80fd\u3002<\/p>\n<h3><strong>2. \u57f7\u884cPDF\u904a\u6232\u6709\u4ec0\u9ebc\u7279\u6b8a\u8981\u6c42\u55ce\uff1f<\/strong><\/h3>\n<p>\u9664\u4e86\u652f\u63f4 PDF \u8173\u672c\u7684\u73fe\u4ee3 Web \u700f\u89bd\u5668\u4e4b\u5916\uff0c\u4e0d\u9700\u8981\u4efb\u4f55\u7279\u6b8a\u8edf\u9ad4\u3002\u53ea\u9700\u78ba\u4fdd\u60a8\u5b89\u88dd\u4e86\u6700\u65b0\u7248\u672c\u7684\u700f\u89bd\u5668\u5373\u53ef\u7372\u5f97\u6700\u4f73\u9ad4\u9a57\u3002<\/p>\n<h3><strong>3.\u6211\u53ef\u4ee5\u4fee\u6539\u81ea\u5df1\u5c08\u6848\u7684\u6e90\u78bc\u55ce\uff1f<\/strong><\/h3>\n<p>\u7d55\u5c0d\u5730\uff01\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM PDF \u6539\u7de8\u7248\u7684\u6e90\u4ee3\u78bc\u53ef\u5728 GitHub \u4e0a\u627e\u5230\u3002\u60a8\u53ef\u4ee5\u5c07\u5176\u7528\u4f5c\u60a8\u81ea\u5df1\u7684\u5c08\u6848\u7684\u57fa\u790e\u6216\u9032\u4e00\u6b65\u958b\u767c\u9019\u4e9b\u904a\u6232\u3002<\/p>\n<p><a class=\"xiaomi\" href=\"https:\/\/www.howtogeek.com\/doom-tetris-pdf-ports\/\" rel=\"noopener noreferrer nofollow\" target=\"_blank\">\u4f86\u6e90\u548c\u5716\u7247<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u63a2\u7d22\u4ee4\u4eba\u8208\u596e\u7684 PDF \u904a\u6232\u4e16\u754c\uff1a\u5728 PDF \u4e2d\u73a9\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM\uff01 \u8a31\u591a\u4eba\u8a8d\u70ba PDF \u53ea\u662f\u7528\u65bc\u986f\u793a\u6587\u5b57\u548c\u5716\u50cf\u7684\u975c\u614b\u6587\u4ef6\uff0c\u4f46\u6700\u8fd1\u7684\u9032\u5c55\u5df2\u5c07\u5b83\u5011\u8f49\u8b8a\u70ba\u904a\u6232\u7684\u4e92\u52d5\u9014\u5f91\u3002\u900f\u904e\u5275\u65b0\u7684 PDF \u8173\u672c\u548c\u700f\u89bd\u5668\u6280\u8853\uff0c\u63a2\u7d22\u5982\u4f55\u5728 PDF \u6587\u4ef6\u4e2d\u73a9\u4fc4\u7f85\u65af\u65b9\u584a\u548c DOOM \u7b49\u7d93\u5178\u904a\u6232\u3002 \u5728\u700f\u89bd\u5668\u4e2d\u4f7f\u7528 PDF \u904b\u884c\u4fc4\u7f85\u65af\u65b9\u584a Thomas Rinsma \u662f\u4e00\u4f4d\u5c08\u9580\u7684\u5b89\u5168\u5206\u6790\u5e2b\u548c\u958b\u767c\u4eba\u54e1\uff0c\u4ed6\u7387\u5148\u63d0\u51fa\u4e86\u5728 PDF \u6587\u4ef6\u4e2d\u904b\u884c\u4fc4\u7f85\u65af\u65b9\u584a\u7684\u5168\u529f\u80fd\u7248\u672c\u7684\u60f3\u6cd5\u3002\u9019\u7a2e\u7368\u7279\u7684\u9ad4\u9a57\u53ef\u4ee5\u5728 Google Chrome\uff08\u548c\u5176\u4ed6\u57fa\u65bc Chromium \u7684\u700f\u89bd\u5668\uff09\u4ee5\u53ca Mozilla Firefox \u7b49\u6d41\u884c\u7684\u7db2\u9801\u700f\u89bd\u5668\u4e2d\u7372\u5f97\u3002\u597d\u5947\u7684\uff1f\u5617\u8a66\u4e00\u4e0bRinsma \u7684 PDF \u6a94\u6848\u3002 \u4ee4\u4eba\u8208\u596e\u7684\u87a2\u5e55\u622a\u5716\uff0c\u5c55\u793a\u4e86\u5728 PDF \u4e2d\u904b\u884c\u7684\u4fc4\u7f85\u65af\u65b9\u584a\u3002 Rinsma \u5728\u5176\u5167\u5bb9\u8c50\u5bcc\u7684\u90e8\u843d\u683c\u6587\u7ae0\u4e2d\u8a73\u7d30\u95e1\u8ff0\u4e86 PDF \u5728\u73fe\u4ee3\u74b0\u5883\u4e2d\u7d93\u5e38\u88ab\u5ffd\u8996\u7684\u529f\u80fd\u3002\u96d6\u7136\u6211\u5011\u7fd2\u6163\u5c07 PDF \u4f5c\u70ba\u552f\u8b80\u6587\u4ef6\u67e5\u770b\uff0c\u4f46\u5176\u4e2d\u5b58\u5728\u76f8\u7576\u5927\u7684\u8173\u672c\u7de8\u5beb\u6f5b\u529b\uff0c\u5c24\u5176\u662f\u5728\u4f7f\u7528 PDFium\uff08\u7531 Chromium \u4f7f\u7528\uff09\u6216 PDF.js\uff08\u91dd\u5c0d Firefox\uff09\u6642\u3002 \u4e86\u89e3 PDF \u8173\u672c\u529f\u80fd \u52d5\u614b\u5167\u5bb9\uff1a PDF \u53ef\u4ee5\u5bb9\u7d0d\u8868\u55ae\u5143\u7d20\u3001\u6309\u9215\u548c\u8907\u9078\u6846\uff0c\u5f9e\u800c\u5be6\u73fe\u4e92\u52d5\u5f0f\u9ad4\u9a57\u3002 JavaScript \u6574\u5408\uff1a\u900f\u904e\u5408\u4f75 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[148,857,175,6],"class_list":["post-7126","post","type-post","status-publish","format-standard","hentry","category-how-to","tag-pdf","tag-video-games","tag-web","tag-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/posts\/7126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/comments?post=7126"}],"version-history":[{"count":1,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/posts\/7126\/revisions"}],"predecessor-version":[{"id":7127,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/posts\/7126\/revisions\/7127"}],"wp:attachment":[{"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/media?parent=7126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/categories?post=7126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howtogeek.blog\/zh\/wp-json\/wp\/v2\/tags?post=7126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}