2 คะแนน โดย GN⁺ 2024-05-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Stirling PDF เป็นแพลตฟอร์มแก้ไข PDF แบบโอเพนซอร์สที่สามารถ แก้ไข·ลงนาม·ปิดทับข้อมูล·แปลง·ทำงานอัตโนมัติ ได้โดยไม่ต้องส่งเอกสารไปยังบริการภายนอก
  • รองรับทั้ง แอปเดสก์ท็อป สำหรับใช้งานส่วนตัว, UI บนเบราว์เซอร์, การติดตั้งบนเซิร์ฟเวอร์ของตนเอง และ private API จึงสามารถใช้งานให้เหมาะกับสภาพแวดล้อมการทำงานได้
  • มีเครื่องมือ PDF มากกว่า 50 รายการ ครอบคลุมฟีเจอร์อย่างการรวมไฟล์·แยกไฟล์·OCR·บีบอัด รวมถึง no-code pipeline บน UI และระบบอัตโนมัติผ่าน API
  • สำหรับการใช้งานระดับองค์กร รองรับ SSO, การตรวจสอบย้อนหลัง และการติดตั้งแบบ on-premises โดยเครื่องมือส่วนใหญ่มี REST API สำหรับผสานเข้ากับระบบเดิมได้
  • การเริ่มต้นอย่างรวดเร็วทำได้ด้วย Docker โดยรัน docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf แล้วเปิด http://localhost:8080

สิ่งที่ Stirling PDF มีให้

  • Stirling PDF เป็นแพลตฟอร์มแก้ไข PDF แบบโอเพนซอร์สที่สามารถรันได้ทั้งในแอปเดสก์ท็อปส่วนตัว, UI บนเบราว์เซอร์ และเซิร์ฟเวอร์ที่โฮสต์เอง
  • เมื่อติดตั้งบนเซิร์ฟเวอร์ของตนเอง จะสามารถใช้ private API ได้ และจัดการงาน PDF โดยไม่ต้องส่งเอกสารไปยังบริการภายนอก
  • งานหลักที่รองรับคือ การแก้ไข, การลงนาม, การปิดทับข้อมูล, การแปลง และการทำงานอัตโนมัติ

ขอบเขตความสามารถหลัก

  • มี เครื่องมือ PDF มากกว่า 50 รายการ
    • แก้ไข
    • รวมไฟล์
    • แยกไฟล์
    • ลงนาม
    • ปิดทับข้อมูล
    • แปลง
    • OCR
    • บีบอัด
  • รองรับ ระบบอัตโนมัติและเวิร์กโฟลว์
    • สามารถสร้าง no-code pipeline ได้จาก UI
    • สามารถประมวลผล PDF หลายล้านไฟล์ผ่าน API ได้
  • มีคุณสมบัติแบบ แพลตฟอร์มนักพัฒนา ด้วย
    • มี REST API สำหรับเครื่องมือเกือบทั้งหมด
    • สามารถผสานเข้ากับระบบเดิมได้
  • UI รองรับ มากกว่า 40 ภาษา
  • สามารถดูรายการความสามารถทั้งหมดได้ที่ Documentation

การติดตั้งและรูปแบบการรัน

  • สภาพแวดล้อมที่รองรับคือ ไคลเอนต์เดสก์ท็อป, UI บนเบราว์เซอร์ และเซิร์ฟเวอร์ที่โฮสต์เอง
  • เริ่มต้นอย่างรวดเร็วได้ด้วยคำสั่ง Docker
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf
  • หลังจากรันแล้ว ให้เปิด http://localhost:8080
  • ตัวเลือกการติดตั้งทั้งหมดรวมถึงเดสก์ท็อปและ Kubernetes อยู่ใน Documentation Guide

ฟีเจอร์สำหรับองค์กรและการปฏิบัติการ

  • มีฟีเจอร์ระดับองค์กรอย่าง SSO, การตรวจสอบย้อนหลัง และการติดตั้ง on-premises ที่ยืดหยุ่น
  • ข้อมูลเกี่ยวกับ Server Plan และ Enterprise อยู่ที่ Server Plan & Enterprise

การพัฒนา·การมีส่วนร่วม·การสนับสนุน

  • แหล่งข้อมูลหลัก
  • ช่องทางการสนับสนุน
  • แนวทางการมีส่วนร่วมให้ปฏิบัติตาม CONTRIBUTING.md
  • คำสั่งสำหรับ build·พัฒนา·ทดสอบ ใช้ Task เป็นตัวรันคำสั่งแบบรวมศูนย์
    • เริ่มรันเอดิเตอร์ด้วย task dev
    • ดูคำสั่งที่ใช้บ่อยด้วย task
    • รายละเอียดทั้งหมดอยู่ใน DeveloperGuide.md
  • การเพิ่มภาษาแปลใหม่ให้ดู devGuide/HowToAddNewLanguage.md
  • ไลเซนส์เป็นแบบ open-core และรายละเอียดอยู่ใน LICENSE

1 ความคิดเห็น

 
GN⁺ 2024-05-04
ความคิดเห็นจาก Hacker News
  • สิ่งที่ขาดแคลนจริง ๆ ในระบบนิเวศ PDF คือ เครื่องมือโอเพนซอร์สเกี่ยวกับลายเซ็น
    ลายเซ็น PDF มีความสำคัญทางกฎหมายในหลายภูมิภาคทั่วโลกเพราะกฎระเบียบอย่าง eIDAS แต่การเซ็นเอกสาร PDF ด้วยวิธีเข้ารหัสนั้นยากเกินไป ถ้าไม่ใช้ Adobe หรือเครื่องมือปิดซอร์สที่ดูน่าสงสัย ต่อให้หาวิธีเซ็นด้วย LibreOffice หรือ poppler ได้แล้ว ก็ยังยากที่จะได้ใบรับรองที่ตรวจสอบได้โดยไม่ต้องจ่ายเงินก้อนใหญ่
    ถ้ามีใครทำหน้าที่แบบ Let's Encrypt สำหรับ PDF และใบรับรอง S/MIME ได้ ความเชื่อมั่นสาธารณะน่าจะดีขึ้นมาก

    • บอกว่าต้องมีใบรับรองที่ตรวจสอบได้ก็จริง แต่แค่ แปะภาพลายเซ็น ใน macOS Preview ก็ไปได้ไกลอย่างน่าประหลาดใจแล้ว
    • เห็นด้วยอย่างยิ่ง ผมกำลังทำสิ่งที่เกี่ยวข้องอยู่ในบริษัทที่ตามศัพท์ของ eIDAS คือเป็นทั้ง TRA และ QTSP
      ไลบรารีโอเพนซอร์สที่ยอดเยี่ยมสำหรับ PDF, ลายเซ็นดิจิทัล และลายเซ็น PDF: https://github.com/MatthiasValvekens/pyHanko
      DSS Tool ของ European Commission ก็มีประโยชน์ แค่ส่ง PDF ไฟล์เดียวก็พอ ไม่จำเป็นต้องใส่ทั้งต้นฉบับและไฟล์ที่เซ็นแล้ว: https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo...
      บริษัทคือ https://www.zealid.com/en/ และที่ https://my.zealid.com/en สามารถทำ remote onboarding ได้ฟรี จากนั้นดาวน์โหลดและอัปโหลดใบรับรองที่มีคุณสมบัติตามเกณฑ์ เซ็นแบบ QES และดาวน์โหลด PDF ได้ฟรีทั้งหมด และยังเชื่อมต่อผ่าน API ได้ด้วย
    • จริงมาก เคยถามฝ่าย IT ภายในที่เชี่ยวชาญ Windows Server ว่าจะใช้เวลานานแค่ไหนในการทำ PKI พื้นฐานสำหรับเซ็นเอกสารภายในองค์กร เขาทำหน้าเหมือนเห็นคนมีสองหัวเลย
    • macOS Preview ตอบโจทย์นี้ไม่ได้เหรอ?
  • ผมโฮสต์ตัวนี้ไว้ที่บ้าน ไม่ได้ใช้เองโดยตรง แค่ใช้ เครื่องมือ Linux CLI ที่เป็นฐานของมันก็พอ
    แต่ผมคิดว่าภรรยาใช้ตัวนี้แปลงหรือแยก PDF ดีกว่าอัปโหลดไปเว็บหรือแอปอะไรก็ไม่รู้ ยังไงเว็บพวกนั้นก็มักใช้เครื่องมือ command line เดียวกันอยู่แล้ว
    ภรรยาก็ไม่ได้ใส่ใจมากว่าจะใช้แบบไหน และดูเหมือนว่ามันเหมาะกับกรณีใช้งานของเธอพอดี

    • สนใจส่วนเครื่องมือ Linux CLI ที่เป็นฐานอยู่ ที่ผมหาเจอคืออันนี้: https://pdfbox.apache.org/2.0/commandline.html
      PDFBox เป็นแอปพลิเคชัน Java ดังนั้นควรทำงานข้ามแพลตฟอร์มได้ ไม่ใช่แค่ Linux ถ้าหมายถึงอย่างอื่นก็บอกด้วยนะ
    • ซื้อ เครื่องมือ PDF แบบไลเซนส์ถาวร ราคา 70 ดอลลาร์ไปเลยดีกว่า คุ้มเงินจริง ๆ ถ้าหาเวอร์ชัน exe แบบ portable มาด้วยได้ก็ยิ่งดี
  • ใน README เขียนว่า “Stirling PDF จะไม่เริ่มการเรียกออกไปภายนอกเพื่อวัตถุประสงค์ด้านการเก็บบันทึกหรือการติดตาม” งั้นก็คงได้ข้อสรุปแล้วมั้ง

    • ผมเป็นผู้สร้างเอง ดูเหมือนว่าเอกสารจะมีจุดที่ทำให้สับสนอยู่บ้าง มันไม่ได้สร้างด้วย ChatGPT ทั้งหมด
      ตอนแรกเริ่มจาก ชาเลนจ์ 24 ชั่วโมง เพื่อสร้างทั้งแอปด้วย ChatGPT ภายในเวลาจำกัด เพราะอยากทดสอบว่า ChatGPT 3.0 เมื่อปีที่แล้วเป็นอย่างไร
      พอโพสต์ลง Reddit แล้วมีคนต้องการเยอะ เลยพัฒนาต่อเป็นแอปเต็มรูปแบบ และช่วงที่ใช้ ChatGPT ล้วน ๆ มีแค่ 24 ชั่วโมงแรกเท่านั้น ตอนนี้ผ่านมามากกว่าหนึ่งปีแล้ว
    • สงสัยว่าประโยคนั้นหมายความว่าอะไร ใส่มาเพื่อให้คนใน HN สนใจหรือเปล่า? ดูคล้ายกับสินค้า/บริการที่เกี่ยวข้องกับข้อมูลแม้แต่นิดเดียว จู่ ๆ ก็แปะคำว่า “แถมมี AI ด้วย” ไว้ตรงไหนสักแห่งบน landing page
      เราไม่เขียนใน README ว่า “พัฒนาด้วย IntelliSense” กันนี่นา
    • สำหรับผมมันหมายถึงสองอย่าง: อย่าเปิดเผยบนอินเทอร์เน็ตสาธารณะ และ อย่าใส่อินพุตที่ไม่น่าเชื่อถือเข้าไป
      ดังนั้นตามมาตรฐานของผม ความมีประโยชน์ของมันลดลงไปมาก
    • น่าทึ่งจริง ๆ เรากำลังอยู่ในยุคที่ยอดเยี่ยมมาก
    • แล้วเราควรเชื่อถือสิ่งนี้ได้ไหม?
  • ถ้าฟีเจอร์นี้ถูกรวมเข้ากับ Paperless ก็คงดี บางครั้งเอกสารที่สแกนเข้ามากลับหัว เลยต้องสแกนใหม่
    ถ้ากดปุ่มหมุน แล้วถ้าจำเป็นก็จัดลำดับใหม่ จากนั้นให้ประมวลผลใหม่ได้ก็คงดี

    • ใน minor release ที่ผ่านมาของ paperless-ngx มีการเพิ่ม รวม, แยก, หมุน แล้ว
      ที่มา: https://docs.paperless-ngx.com/changelog/#paperless-ngx-270
    • paperless-ngx เวอร์ชันล่าสุดรองรับการหมุนเอกสารแล้ว ลองตรวจดูได้
    • โอ๊ย ก็หมุนเอกสารใน PDF reader แล้ว พิมพ์เป็น PDF ก็ได้
  • อัปเดตที่ค่อนข้างใหม่ของ Firefox เพิ่ม ตัวแก้ไข PDF เข้ามาแล้ว
    ดูเหมือนว่าหลายคนยังมีภาพจำเกี่ยวกับ Firefox ค้างอยู่ที่เมื่อหลายเวอร์ชันก่อน ในฐานะคนที่ใช้ทุกวันมาตลอดประวัติของมัน ผมว่า Firefox พัฒนาขึ้นมากพอสมควรตลอดหลายปีที่ผ่านมา
    ถ้าไม่ได้ลองใช้มาสักพัก ก็น่าลองกลับมาใช้อีกครั้ง

  • เมื่อเห็นประโยคใน README ที่ว่า “Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes” ก็สงสัยว่าผู้ใช้ที่สนใจจะมีวิธี ตรวจสอบล่วงหน้า นอกเหนือจากการ audit โค้ดหรือไม่
    โดยเฉพาะแม้แอปจะต้องมีคำขอเว็บบางอย่างเพื่อให้ทำงานได้ แต่แอปบนเว็บจะสนับสนุนข้อกล่าวอ้างแบบนี้ได้อย่างไร เช่น ในกรณีที่ต้องส่งคำขอได้เฉพาะไปยังรายการ URL ที่จำกัดไว้ใน manifest อย่าง Content-Security-Policy เท่านั้น?
    นี่เป็นปัญหาที่ค่อนข้างเฉพาะเจาะจงเมื่อ deploy แอปที่ผู้ใช้ต้อง “อัปโหลด” เนื้อหาที่อ่อนไหว

    • ถ้าโฮสต์เอง Little Snitch อาจช่วยได้ หากไม่ได้โฮสต์เองก็รับประกันไม่ได้ และท่าทีพื้นฐานคือ “ให้คาดการณ์กรณีเลวร้ายที่สุด”
      https://www.obdev.at/products/littlesnitch/index.html
      Little Snitch เป็นเครื่องมือที่เน้น macOS เป็นหลัก อย่างอื่นก็น่าจะมี แต่ไม่ค่อยรู้จัก รู้สึกว่าเรื่องแบบนี้ควรเป็นฟีเจอร์ระดับระบบปฏิบัติการ
    • ถ้าโฮสต์เองบน Kubernetes ก็สามารถตั้งค่านโยบายเครือข่ายแบบ deny-all egress สำหรับ deployment หรือ pod นั้นได้ แบบนั้นการเรียกเครือข่ายออกไปภายนอกทั้งหมดจะถูกบล็อก
    • เว็บแอปไม่จำเป็นต้องทำคำขอเว็บออกไปภายนอกเพื่อให้ทำงานได้ ผู้ใช้ที่โต้ตอบกับเว็บต่างหากที่เป็นฝ่ายเริ่มคำขอ
      อาจให้เข้าถึงแอปผ่าน HTTP proxy แล้วกรองคำขอภายนอกจากเว็บแอป หรือไม่ตั้งค่า network routing ให้กับเซิร์ฟเวอร์ที่โฮสต์แอปนั้นเลยก็ได้ แบบนั้นสิ่งที่เหลือก็มีเพียงคำขอที่ JavaScript เริ่มจากในหน้าเว็บที่ render แล้วเท่านั้น
    • สุดท้ายแล้วนี่เป็นปัญหาที่มีอยู่ในแทบทุกแพ็กเกจ ไลบรารี และระบบที่เราใช้
      โอเพนซอร์สทำงานอยู่บน ความไว้วางใจ ในระดับสูง และพวกเราทุกคนก็เป็นส่วนหนึ่งของโครงสร้างนั้น
    • วาง sniffer หรือเครื่องมือจับทราฟฟิกเครือข่ายอย่าง Wireshark ไว้ตรงกลางก็ได้ นอกจากนี้ยังสามารถจำกัดการเข้าถึงเครือข่ายของแอปให้เหลือเฉพาะเครือข่ายบ้านภายในเครื่องอย่างสมบูรณ์ได้ด้วย
  • กำลังทำผลิตภัณฑ์ที่อธิบายได้ในลักษณะคล้ายกัน
    CxReports: เครื่องมือรายงาน PDF บนเว็บแบบโฮสต์เอง
    https://www.cx-reports.com

  • เมื่อไม่กี่เดือนก่อนเคยเห็นโปรเจกต์นี้แล้วชอบทันที เลยติดตั้งและเริ่มใช้งานจริง แต่พบว่า บั๊กเยอะ และเครื่องมือบางอย่างใช้งานไม่ได้แทบทั้งหมด
    หวังว่าตอนนี้จะดีขึ้นแล้ว

  • เคยลองใช้สิ่งนี้เพื่อ เพิ่มคอนทราสต์ ของไฟล์ PDF ที่มีแบบฟอร์มข้อความที่สแกนมา สแกนแทบมองไม่เห็น เลยต้องการประมาณว่าให้ส่วนที่มืดเข้มขึ้น และถ้าเป็นไปได้ก็หนาขึ้นเล็กน้อยเพื่อให้มองเห็นชัดขึ้น
    งานที่ดูเล็กน้อยแบบนั้น เครื่องมือก็ยังช่วยได้ไม่ดี และปรับปรุงได้เพียงเล็กน้อยมาก ลองทำซ้ำหลายครั้ง แต่หลังจากครั้งที่สองก็ไม่มีความแตกต่างทางสายตาอีกแล้ว มีแต่ขนาดไฟล์ที่เปลี่ยนไปเรื่อย ๆ

    • จริง ๆ แล้วนั่นไม่ใช่ปัญหาของ PDF เอง ในกรณีนั้น PDF เป็นแค่ wrapper บาง ๆ ที่ห่อ ภาพแรสเตอร์ ไว้เท่านั้น
      แค่ดึงภาพออกมา แล้วเพิ่มคอนทราสต์ด้วย GIMP หรือ ImageMagick จากนั้นสร้าง PDF ใหม่ก็พอ ถ้ามีไฟล์จำนวนมากก็สคริปต์จัดการได้
  • กำลังดูรายการอยู่ และกำลังหาอยู่ว่ามี API สำหรับดึงข้อความ จาก PDF หรือไม่
    หรือจะดึงออกมาในรูปแบบเวกเตอร์หรือ embedding ได้หรือเปล่าก็สงสัยเหมือนกัน