Nenda kwenye maudhui makuu
PPDF123

pdfx: mstari wa amri wa PDF123

pdfx ni mstari wa amri wa PDF123, uliochapishwa kwenye npm kama @pdf123/cli. Unaendesha zana yoyote kati ya 95 za PDF, kama unganisha, gawanya, bana na OCR, kwenye faili zilizo kwenye diski yako kwa kuzituma kwa API ya PDF123 au seva yako mwenyewe na kuhifadhi matokeo hapo hapo.

@pdf123/cliNode 20.3 au mpya zaidi, au Bun

Sakinisha

npm install -g @pdf123/cli
Kwenye ukurasa huu

Ninasakinishaje pdfx?

Sakinisha kifurushi kwa ujumla (global) ili upate amri ya pdfx. Au iendeshe mara moja bila kusakinisha.

Sakinishabash
npm install -g @pdf123/cli
pdfx --version
Endesha bila kusakinishabash
npx @pdf123/cli merge a.pdf b.pdf -o merged.pdf
bunx @pdf123/cli merge a.pdf b.pdf -o merged.pdf

bun add -g @pdf123/cli na pnpm add -g @pdf123/cli pia hufanya kazi. Hakuna kingine kinachohitaji kusakinishwa.

Ninaanzaje?

Amri hizi sita zinaonyesha mifumo ya kawaida.

Kuanza harakabash
pdfx list                                          # every tool; --category security for one category
pdfx describe watermark                            # a tool's fields and defaults
pdfx merge a.pdf b.pdf -o merged.pdf
pdfx compress *.pdf -o compressed/                 # several files: one result per file
pdfx watermark in.pdf --watermarkText DRAFT
pdfx pipeline a.pdf b.pdf --step merge --step compress -o out.pdf

Ninaendeshaje zana yoyote?

Hoja ya kwanza ni kitambulisho cha zana. Faili za ingizo na chaguo za zana hufuata. Kila chaguo la zana ni bendera, iliyoandikwa kama jina la sehemu ya API (--pageNumbers) au kwa kebab case (--page-numbers). Nambari hasi inaweza kufuata bendera yake baada ya nafasi, kama ilivyo kwenye --rotation -90, au baada ya alama ya usawa.

Sintaksiatext
pdfx <tool> [files...] [--<field> <value>]...

Tumia pdfx list kuona zana. Inakubali --category au --group, na --query pamoja na maneno ya kutafuta. Tumia pdfx describe <tool> kuona sehemu ya mwisho, ingizo zinazokubaliwa, kama zana inaendeshwa kama kundi, na kila sehemu pamoja na thamani yake chaguomsingi na thamani zinazoruhusiwa. Kitambulisho cha zana kisichojulikana hupewa mapendekezo, na kilichoandikwa vibaya hutoka kwa msimbo wa 2.

Amri zipi zinalingana na kurasa zipi za zana?

AmriUkurasa wa zanaInafanya nini
pdfx merge a.pdf b.pdf -o merged.pdfUnganishaUnganisha PDF kadhaa kuwa moja
pdfx split report.pdf --pageNumbers 3,7 -o parts.zipGawanyaGawanya PDF kuwa faili tofauti
pdfx compress in.pdf -o out/BanaBana tena mitiririko ya PDF ili kupunguza ukubwa
pdfx watermark in.pdf --watermarkText DRAFTWeka alama ya majiOngeza alama ya maji ya maandishi au picha
pdfx protect in.pdf --password secret -o locked.pdfWeka nenosiriSimba PDF kwa nenosiri
pdfx unlock locked.pdf --password secretOndoa nenosiriOndoa ulinzi wa nenosiri
pdfx get-info in.pdfMaelezo ya hatiChapisha metadata, ruhusa na muundo kama JSON
pdfx ocr scan.pdf -o out/OCRSoma PDF iliyoskaniwa na uhifadhi Markdown
pdfx pdf-to-markdown in.pdf -o out/PDF kuwa MarkdownGeuza PDF kuwa Markdown
pdfx rotate in.pdf --angle 90ZungushaBadilisha mwelekeo wa kurasa kwa digrii 90, 180 au 270
pdfx repair broken.pdfRekebishaJenga upya muundo wa PDF iliyoharibika

Ninachakataje faili nyingi kwa wakati mmoja?

Toa faili kadhaa kwa zana ya faili moja na pdfx inaendesha kundi. Tumia -o pamoja na saraka inayoishia kwa mkwaju. Zana inaendeshwa mara moja kwa kila faili, faili mbili kwa wakati mmoja kwa chaguomsingi. Badilisha hilo kwa --concurrency.

Kundibash
pdfx compress *.pdf -o compressed/
pdfx protect *.pdf --password secret --concurrency 4 -o locked/

pdfx huchapisha mstari mmoja, input -> saved, kila faili inapokamilika. Faili iliyoshindwa huripotiwa kwenye hitilafu ya kawaida (standard error) na faili nyingine bado zinakamilika. Bonyeza Ctrl-C mara moja kusimamisha ombi linaloendelea; faili zilizokwisha kuhifadhiwa zinabaki. Ctrl-C ya pili inatoka mara moja kwa msimbo wa 130. Ukitumia --idempotency-key k, kila faili hutuma k:<index>, na kurudia ombi lilelile kunarudisha matokeo ya kwanza kwa saa 24.

Kundi la zana inayorudisha ripoti, kama get-info, haliandiki faili bila -o. Linachapisha ripoti zikiwa zimepangwa kwa faili ya ingizo.

Ninaunganishaje zana kwenye ombi moja?

pdfx pipeline inaendesha zana kadhaa kwenye ombi moja. Rudia --step kwa kila zana. Ili kuweka chaguo, pitisha safu ya JSON kwa --steps.

Mnyororo wa zanabash
pdfx pipeline a.pdf b.pdf --step merge --step compress -o out.pdf
pdfx pipeline in.pdf --steps '[{"tool":"watermark","params":{"watermarkText":"DRAFT"}},{"tool":"compress"}]' -o out.pdf

Hatua haziwezi kutumia zana zinazohitaji faili ya pili.

Ninafunguaje PDF zilizolindwa kwa nenosiri?

--input-password inafungua kwanza kila ingizo lililosimbwa. --password-for <file>=<password> inaweka nenosiri la faili moja. Inaweza kurudiwa, na * kama jina la faili inashughulikia zilizobaki. Hii inafaa kundi lenye faili zilizofungwa na zilizo wazi. Kwa merge na images-to-pdf, kila faili iliyotajwa hufunguliwa kivyake kabla zana haijaendeshwa.

Manenosiribash
pdfx compress locked.pdf --input-password secret -o out.pdf
pdfx compress report.pdf --password-for report.pdf=secret -o out.pdf
pdfx merge a.pdf b.pdf --password-for a.pdf=secret -o merged.pdf

Chaguo hizo hizo zinafanya kazi kwenye mnyororo wa zana. Ili kuondoa ulinzi kwa kudumu, tumia zana ya Ondoa nenosiri pamoja na chaguo lake la --password.

Ingizo na towe hufanyaje kazi?

  • Ingizo la - husoma ingizo la kawaida (standard input), mara moja kwa kila uendeshaji. -o - huandika matokeo kwenye towe la kawaida (standard output).
  • -o file.pdf huandika faili hiyo. -o dir/ huandika ndani ya saraka. Saraka ambayo bado haipo inahitaji mkwaju wa mwisho, kwa sababu jina lisilo nao huandikwa kama faili.
  • Bila -o, matokeo huenda kwenye saraka ya sasa chini ya jina la faili la seva.
  • Ndani ya saraka, pdfx haiandiki juu ya faili iliyopo kamwe; huchagua jina jipya. -o file.pdf ya wazi huandika juu ya faili hiyo.
  • Jina la faili la -o ambalo kiendelezi chake kinapingana na matokeo, kama ZIP kutoka split iliyohifadhiwa kama .pdf, hukataliwa kwa msimbo wa kutoka 2 na code: output_mismatch. Hakuna kinachoandikwa.
  • Towe lisiloweza kuandikwa ni hitilafu ya matumizi inayogunduliwa kabla ya chochote kupakiwa.
Bomba la shellbash
cat in.pdf | pdfx compress - -o - > out.pdf

--json huchapisha nini?

Kwa matokeo yaliyohifadhiwa, --json huchapisha njia, aina ya maudhui na ukubwa. Zana inayorudisha ripoti huchapisha ripoti yenyewe. Kundi huchapisha ripoti moja yenye hali kwa kila faili.

Matokeo mojajson
{ "path": "one.pdf", "contentType": "application/pdf", "bytes": 1040 }
Ripoti ya kundijson
{
  "processed": 2,
  "unmatched": 0,
  "failed": 0,
  "files": [
    { "input": "/abs/a.pdf", "ok": true, "path": "comp/a.pdf", "contentType": "application/pdf", "bytes": 1040 }
  ]
}

Faili iliyoshindwa ina error na reason badala ya path na bytes. Zana ya kichujio isiyo na mechi huchapisha { "matched": false }. pdfx list --json huchapisha safu zenye id, category, group, name, description, returns, files na filter.

Ni chaguo zipi zinatumika kwa kila zana?

ChaguoAthari
-o, --output <path>Faili ya kuandika, au saraka ya kuandikia ndani yake. Chaguomsingi ni saraka ya sasa. - ni towe la kawaida
--api-base <url>Anwani ya msingi (origin) ya API. Kigeu cha mazingira PDFX_API_BASE, chaguomsingi https://pdf123.xyz
--api-key <key>Hutumwa kama X-API-KEY. Kigeu cha mazingira PDFX_API_KEY. Si lazima
--input-password <pw>Hufungua kwanza kila ingizo lililolindwa kwa nenosiri
--password-for <file>=<pw>Nenosiri la faili moja. Inaweza kurudiwa
--concurrency <n>Idadi ya faili za kundi zinazochakatwa kwa wakati mmoja. Chaguomsingi 2
--timeout <ms>Muda wa juu kwa kila ombi. Chaguomsingi 300000
--idempotency-key <k>Hurudisha matokeo ya kwanza kwa saa 24
--jsonTowe linalosomeka na mashine

Misimbo ya kutoka ni ipi?

MsimboMaana
0Mafanikio. Zana ya kichujio isiyo na mechi pia hutoka kwa 0 na huchapisha no match
1Ombi lilishindwa. Kwenye kundi, angalau faili moja ilishindwa; nyingine bado zinakamilika
2Hitilafu ya matumizi. Hakuna kilichopakiwa
130Imekatizwa kwa Ctrl-C. Ombi linaloendelea linasimamishwa

Kushindwa huchapisha mistari ya reason:, code: na hint: seva inapozitoa, ili hati iweze kuamua bila kulinganisha maandishi. Zana isiyopata cha kurudisha, kama pdf-to-csv kwenye PDF isiyo na majedwali, hutoka kwa 1 pamoja na code: no_content badala ya kuandika faili tupu. Misimbo imeorodheshwa kwenye Misimbo ya hitilafu.

Ninaelekezaje pdfx kwenye seva yangu mwenyewe?

Weka PDFX_API_BASE, au pitisha --api-base, iwe anwani ya pdfx-server uliyojiendeshea mwenyewe. Ongeza PDFX_API_KEY ikiwa seva yako inahitaji ufunguo. Tazama Self-host.

Seva ya kujiendesheabash
export PDFX_API_BASE=http://localhost:8080
export PDFX_API_KEY=<your-key>
pdfx compress in.pdf

Ninaendeshaje sehemu ya mwisho ambayo CLI haiijui?

pdfx call inatuma ombi ghafi kwa kitambulisho cha operesheni au njia ya /api/.... Tumia --field name=value kwa sehemu za fomu na --file field=path kwa faili za ziada. Inatuma ombi moja tu na haihakiki chochote ndani ya kompyuta yako, kwa hiyo manenosiri na makundi vinakataliwa.

Maombi ghafibash
pdfx call general/merge-pdfs a.pdf b.pdf -o merged.pdf
pdfx call /api/v1/misc/flatten in.pdf --field flattenOnlyForms=true -o flat.pdf

Maswali yanayoulizwa mara kwa mara

Je, pdfx inafanya kazi bila mtandao?

Hapana. pdfx hupakia kila faili kwa API ya PDF123 au kwa seva yako mwenyewe na kuhifadhi matokeo hapo hapo, kwa hiyo msingi wa API lazima ufikiwe.

Je, pdfx inahitaji ufunguo wa API?

Hapana. Matumizi bila utambulisho yanafanya kazi. Weka PDFX_API_KEY au pitisha --api-key ikiwa seva yako inauhitaji. Ufunguo hutumwa kama kichwa cha X-API-KEY.

pdfx inahitaji toleo gani la Node?

Node 20.3 au mpya zaidi, au Bun.

Je, pdfx itaandika juu ya faili zangu?

Si inapoandika ndani ya saraka: faili iliyopo haiandikwi juu kamwe. Ukitaja mwenyewe faili ya towe kwa -o file.pdf, faili hiyo huandikwa juu, kwa hiyo chagua jina jipya unapotaka kuhifadhi asili.

Nini hutokea zana ya kichujio isipopata mechi?

Zana za kichujio, ambazo vitambulisho vyake vinaanza na filter-, hupitisha faili hali yake inapotimia. Isipotimia, pdfx huchapisha no match na kutoka kwa msimbo wa 0. Kwenye kundi, faili kama hiyo huhesabiwa kama isiyolingana, si iliyoshindwa.