
Yini i-anydoc?
anydoc iwumtapo wolwazi osheshayo we-Rust wokuguqula amadokhumenti abe yi-GitHub-Flavored Markdown ehlanzekile. Isekela i-Word, i-PowerPoint, i-Excel, i-OpenDocument, i-RTF, i-EPUB, i-CSV, namafayela e-PDF asekelwe embhalweni. Iphrojekthi iphinde inikeze isixhumi esibonakalayo somugqa womyalo nezixhumanisi ze-Node.js, Python, ne-WebAssembly esebenza esipheqululini.
Umtapo wolwazi uklanyelwe amapayipi athola amafomethi amadokhumenti amaningi kodwa adinga ukumelwa okukodwa okuhambisanayo kwe-Markdown. Ifomethi yehhovisi ngayinye esekelwayo ihlaziywa ibe yimodeli yedokhumenti eyabiwe, bese idluliswa kumhleli ofanayo we-Markdown. Lokhu kugcina amathebula, ukubalekela izinhlamvu, izihloko, amanothi angezansi, izixhumanisi, izinhlu, nezinye izakhiwo kuhambisana kuwo wonke amafomethi.
Ukuguqulwa kwenzeka endaweni ngaphandle kwamamodeli okufunda ngomshini noma izinsizakalo zangaphandle. I-README ibika ukuthi isikhathi esimaphakathi sokuguqulwa singaphansi kwama-millisecond amahlanu ngedokhumenti ngayinye ekuhlolweni kokusebenza kwayo. Ama-PDF asekelwe embhalweni aphathwa endaweni nge-pdf-inspector.
anydoc ayenzi i-OCR. Ama-PDF anezithombe kuphela noma askeniwe angenawo umbhalo ofundekayo angabikwa njengangasekelwa. I-Firecrawl Parse iyindlela esingethwe eshiwo yiphrojekthi kumapayipi adinga ne-OCR.
Izici ezibalulekile
- i-Markdown ehambisanayo: Wonke amafomethi ehhovisi asebenzisa imodeli yedokhumenti nomhleli okwabelwana ngawo.
- Okuphumayo okuhlelekile: Izakhiwo ezisekelwayo zihlanganisa izihloko namahange, izixhumanisi, izinkomba zangaphakathi, izinhlu, amathebula, izingcaphuno ezivinjiwe, amanothi angezansi, amanothi okuphetha, amanothi esikhulumi, ikhodi esemgqeni, namabhulokhi ekhodi.
- Ukulondolozwa kokufometha: Okugqamile, okumalukeke, okuchazwayo ngokuklajwa, izinhlu zemisebenzi, izinhlu ezinezendlalelo, ukubalwa kwemithombo, amaseli amathebula ahlanganisiwe, nemigqa yezihloko kungamelwa.
- Izimpahla ezishumekiwe: Izithombe nezinto ezishumekiwe zivela njengombhalo we-alt ku-Markdown, kuyilapho amabhayithi azo aluhlaza nezinhlobo zemidiya zihlala zitholakala ngemodeli yedokhumenti.
- Ukutholwa okusekelwe kokuqukethwe: Amafomethi amadokhumenti asekelwe ku-PDF, RTF, OLE, ne-ZIP akhonjwa ngamabhayithi awo kunokuthembela kuphela ezandisweni zamafayela.
- Izixhumanisi ezingavimbi: Ukuguqulwa kwe-Node.js kusebenzisa ichibi lemicu le-libuv, kanti i-Python ikhulula i-Global Interpreter Lock ngesikhathi sokuguqulwa.
- amaphakheji anohlobo: Izinhlobo ze-TypeScript nezifanekiso ze-Python zifakiwe.
- Ukuhlanganiswa kwama-agent: Iphrojekthi ihlanganisa i-Agent Skill efundisa ama-agent ahambisanayo okubhala ikhodi ukusebenzisa i-anydoc CLI.
Amafomethi amafayela asekelwayo
- Word:
.doc,.docx, kanye.docm - PowerPoint:
.ppt,.pps,.pot,.pptx,.pptm,.ppsx, kanye.ppsm - Excel:
.xls,.xlsx,.xlsm, kanye.xlsb - OpenDocument:
.odt,.ods, kanye.odp - Amanye amafomethi:
.rtf,.epub,.csv, kanye.pdf
Khetha indlela yokufaka
Sebenzisa i-CLI kumaskripthi egobolondo nokuguqulwa kwesikhathi esisodwa. Khetha i-Node.js noma i-Python lapho ukuguqulwa kwamadokhumenti kuyingxenye yohlelo lokusebenza, i-Rust ekuhlanganisweni komdabu, noma i-WebAssembly lapho amafayela kufanele aguqulwe ngqo esipheqululini.
Faka i-CLI
Ungasebenzisa i-CLI eyakhiwe ngaphambilini ngaphandle kokuyifaka unomphela ngokusebenzisa i-npx:
npx @firecrawl/anydoc report.docxOkubili okukhiqizwe ngaphambilini kwenkundla yakho kulandwa ekuqaleni kokusebenza. Ukuze wenze i-anydoc itholakale njengomyalo waphakade, yifake emhlabeni wonke:
npm install -g @firecrawl/anydoc
anydoc --helpFakela i-Node.js
npm install @firecrawl/anydocFakela i-Python
pip install firecrawl-anydocFakela i-WebAssembly yesiphequluli
npm install @firecrawl/anydoc-wasmUngakwazi futhi ukuzama idemo yesiphequluli. Idemo isebenzisa umtapo we-WebAssembly endaweni, ngakho amafayela akhethiwe awasuki emshinini.
Fakela i-Rust
cargo add anydocFaka i-Agent Skill
Ukuze ufundise i-agent ehambisanayo ukuguqula amadokhumenti nge-anydoc CLI, faka i-skill efakiwe:
npx skills add firecrawl/anydocI-README ibala i-Claude Code, i-Codex, i-Cursor, ne-OpenCode phakathi kwamaklayenti ahambisanayo.
Guqula amafayela nge-CLI
Bhala i-Markdown kokuphumayo okujwayelekile
Dlulisa idokhumenti yomthombo njengengxabano yokuqala. I-Markdown ekhiqiziwe iphrintwa kokuphumayo okujwayelekile:
npx @firecrawl/anydoc report.docxLokhu kulula uma ufuna ukuhlola umphumela noma ukuwudlulisela komunye umyalo.
Londoloza i-Markdown efayeleni
Sebenzisa i--o ukukhetha ifayela lokuphumayo:
npx @firecrawl/anydoc slides.pptx -o slides.mdGuqula idatha evela kokokufaka okujwayelekile
Sebenzisa i-- njengendlela yokufaka ukuze ufunde amabhayithi kokokufaka okujwayelekile. I-CSV ayinasiginesha ethembekile kokuqukethwe kwayo, ngakho cacisa ifomethi yayo ngokusobala:
npx @firecrawl/anydoc - --format csv < data.csvSebenzisa i-anydoc ku-Node.js
Iphakheji ye-Node.js iveza imisebenzi ehlukene yezindlela zamafayela, ama-array amabhayithi, nemodeli yedokhumenti eyabiwe.
Guqula indlela yefayela
import { toMarkdown } from '@firecrawl/anydoc';
const markdown = await toMarkdown('report.docx');
console.log(markdown);Guqula amabhayithi
Sebenzisa i-toMarkdownBytes lapho ifayela selilayishiwe, selandwe, noma selifundiwe lafakwa enkumbulweni:
import { toMarkdownBytes } from '@firecrawl/anydoc';
const markdown = await toMarkdownBytes(bytes);Kumafomethi anamasiginesha abonakalayo, i-anydoc ithola ifomethi ngokuhlola okuqukethwe. I-CSV ayinalo isignesha enjalo, ngakho nikeza igama lefomethi:
const markdown = await toMarkdownBytes(bytes, 'csv');Gcina imodeli yedokhumenti nezimpahla
Uma udinga okungaphezu kochungechunge lokugcina lwe-Markdown, yima kumodeli yedokhumenti eyabiwe usebenzisa i-toDocument:
import { toDocument } from '@firecrawl/anydoc';
const document = await toDocument(bytes);Imodeli yedokhumenti iphethe ukwakheka okuhlaziyiwe nezimpahla ezishumekiwe. Amabhayithi ezimpahla ezishumekiwe ahlala etholakala nezinhlobo zawo zemidiya, nakuba ukumelwa kwe-Markdown kusebenzisa umbhalo wazo we-alt.
Sebenzisa i-anydoc ku-Python
Guqula indlela yefayela
import anydoc
markdown = anydoc.to_markdown("report.docx")
print(markdown)Guqula amabhayithi agcinwe enkumbulweni
import anydoc
markdown = anydoc.to_markdown_bytes(data)Yisho ngokusobala okokufaka okungenasignesha okufana ne-CSV:
markdown = anydoc.to_markdown_bytes(data, "csv")Finyelela imodeli yedokhumenti
document = anydoc.to_document(data)Le ndlela iyasiza uma uhlelo lwakho ludinga idokhumenti ehlaziyiwe nezimpahla zayo ezishumekiwe, hhayi i-Markdown eseriyalizwe kuphela.
Guqula amadokhumenti esipheqululini
Iphakheji ye-WebAssembly iguqula uhlu lwamabhayithi endaweni esipheqululini. Qalisa imojuli ngaphambi kokubiza imisebenzi yokuguqula:
import init, { toMarkdownBytes, toDocument } from '@firecrawl/anydoc-wasm';
await init();
const markdown = toMarkdownBytes(bytes);Njengakwezinye izibopho, nikeza ifomethi ye-CSV:
const markdown = toMarkdownBytes(bytes, 'csv');Ukuze ugcine imodeli yedokhumenti nezimpahla ezishumekiwe, sebenzisa i-toDocument:
const document = toDocument(bytes);Ngokungafani ne-API ye-Node.js eboniswe ngaphambilini, izingcingo zokuguqula ze-WebAssembly ku-README zisebenza ngokuvumelanayo ngemva kokuqaliswa.
Sebenzisa i-anydoc ku-Rust
Guqula indlela yefayela
let markdown = anydoc::to_markdown("report.docx")?;Guqula amabhayithi ngokutholwa okuzenzakalelayo
let markdown = anydoc::to_markdown_bytes(&bytes, None)?;Cacisa i-CSV ngokusobala
let markdown = anydoc::to_markdown_bytes(
&bytes,
anydoc::Format::Csv,
)?;Buyisa imodeli yedokhumenti
let document = anydoc::to_document(&bytes, None)?;Qonda ukutholwa kwefomethi
I-anydoc ihlola izimpawu zokuqukethwe ezifana nenhloko ye-PDF, iqembu lokuvula le-RTF, amagama okusakaza e-OLE, kanye nemethadatha yephakheji ye-ZIP. Lokhu kusho ukuthi ifayela elibhalwe ifomethi engalungile lisengaguqulwa uma ifomethi yalo yangempela ingabonakala kumabhayithi alo.
I-Rust inabasizi bokuhlola amabhayithi, izandiso, nezindlela:
Format::from_bytes(&bytes);
Format::from_extension("pptm");
Format::from_path(Path::new("report.odt"));Ucingo lokuqala lubuyisa ifomethi etholakele efana ne-Some(Format::Docx), noma i-None uma kungekho phawu lokuqukethwe olwaziwayo olufanayo. Abasizi abalinganayo bayatholakala ku-Node.js ngaphansi kwamagama afana ne-formatFromBytes, naku-Python ngaphansi kwamagama afana ne-anydoc.format_from_bytes.
Kungani i-CSV idinga ukuphathwa okukhethekile
I-CSV ingumbhalo ongenalutho futhi ayinasignesha evamile yamabhayithi engayikhomba ngokuhlukile. Lapho uguqula amabhayithi e-CSV angenagama noma okokufaka okujwayelekile, nikeza ngokusobala i-csv. Uma indlela yefayela ine-.csv njengesandiso, isandiso singayikhomba.
Phatha amaphutha okuguqula
Ukuguqula kubuyisa iphutha uma kungakhiqizwa i-Markdown enencazelo. I-Rust iveza lezi zimo nge-ConvertError:
- Unsupported: Ifomethi ayaziwa noma ayikwazi ukuguqulwa, okuhlanganisa ne-PDF enezithombe kuphela.
- Malformed: Ifayela alisebenziseki ngokwesakhiwo futhi okuqukethwe okunencazelo akunakukhishwa.
- Encrypted: Idokhumenti ibethelwe noma ivikelwe ngephasiwedi.
- ResourceLimit: Ukuguqula kweqe umkhawulo wokuphepha omisiwe ophathelene nokuvula ukucindezelwa, ukushumeka ngaphakathi, noma inani lama-node.
- MissingPart: Ingxenye edingekayo yedokhumenti ayikho.
- Io: Ifayela elidluliselwe ku-
to_markdownalikwazanga ukufundwa.
Uhlelo lokucubungula amaqoqo lungarekhoda amafayela abethelwe noma angasekelwa luqhubeke nokokufaka okusele:
match anydoc::to_markdown(path) {
Ok(markdown) => Some(markdown),
Err(error @ (ConvertError::Encrypted | ConvertError::Unsupported(_))) => {
unconverted.push((path, error));
None
}
Err(error) => return Err(error),
}Ku-Node.js naku-WebAssembly, igama lohlobo lwephutha litholakala nge-error.code. I-Python iphakamisa i-subclass ezinikele ye-anydoc.ConvertError yohlobo ngalunye lokuguqula, futhi iphakamisa i-OSError uma ifayela lingakwazi ukufundwa.
Amathiphu okuhlanganisa athuthukile
Khetha ukuguqula amabhayithi kumapayipi okulayisha
Uma uhlelo lwakho seluthola amabhayithi edokhumenti ekulayishweni, esitolo sezinto, noma empendulweni ye-HTTP, sebenzisa i-toMarkdownBytes noma i-to_markdown_bytes. Lokhu kugwema isidingo sendlela yefayela futhi kuvumela i-anydoc ukuthi ihlole okuqukethwe kwangempela esikhundleni sokuthembela egameni lefayela elinikezwe umsebenzisi.
Sebenzisa imodeli yedokhumenti lapho izimpahla zibalulekile
I-Markdown iyodwa ayinawo amabhayithi angahluziwe ezinto ezishumekiwe. Sebenzisa i-toDocument noma i-to_document lapho udinga ukugcina, ukuhlola, noma ukucubungula ngokwehlukana izimpahla ezishumekiwe nezinhlobo zazo zemidiya.
Phatha ama-PDF askeniwe ngokwehlukana
Ukusekelwa kwe-PDF okwakhelwe ngaphakathi ku-anydoc kuhloselwe ama-PDF asekelwe embhalweni futhi akufaki i-OCR. Thumela ama-PDF aqukethe izithombe kuphela enqubweni esekela i-OCR esikhundleni sokuzama ngokuphindaphindiwe ukuguqula ngendawo.
Yenza ukukhethwa kwefomethi ye-CSV kucace
Lapho ucubungula okokufaka okuxubile okugcinwe enkumbulweni, hlanganisa amabhayithi e-CSV nemethadatha yefomethi ecacile. Amanye amafomethi asekelwayo ngokuvamile angatholwa kokuqukethwe kwawo, kodwa i-CSV idinga igama, isandiso, noma impikiswano yefomethi ecacile.
Sebenzisa ngokugcwele ukuziphatha kwesikhathi sokusebenza
Ukuguqulwa kwe-Node.js kusebenza kuqoqo lemicu le-libuv esikhundleni sokuvimba iluphu yemicimbi. I-Python ikhulula i-GIL ngesikhathi sokuguqulwa, okuvumela eminye imicu ye-Python ukuthi iqhubeke nokusebenza. Lezi zici ziwusizo lapho uhlanganisa ukuguqulwa ezinhlelweni ezisebenza ngokuhambisana.
Sebenzisa okukhiphayo okungaguquki ezinhlelweni ezilandelayo
Ngenxa yokuthi amafomethi e-office abelana nge-serializer eyodwa, izinhlelo ezilandelayo zingasebenzisa isakhiwo esisodwa se-Markdown esikhundleni sokugcina imithetho ehlukene yokuhlanza okokufaka kwe-Word, PowerPoint, Excel, RTF, ne-OpenDocument. Lokhu kwenza i-anydoc ifaneleke kakhulu ekufakeni izinkomba zokusesha, emigqeni yokukhipha okuqukethwe, nasekulungiseleleni umbhalo ohlelekile wamamodeli olimi.
Indlela ipayipi lokuguqula elisebenza ngayo
- i-anydoc ihlola amabhayithi edokhumenti noma ulwazi lwegama lefayela olutholakalayo ukuze inqume ifomethi.
- I-parser eqondene nefomethi ifunda okuqukethwe kwe-Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, noma CSV.
- I-parser yakha imodeli yedokhumenti eyabiwe equkethe amabhulokhi, izakhi ezisemgqeni, amathebula, imibhalo yaphansi, nezimpahla.
- I-serializer evamile iguqula leyo modeli ibe yi-GitHub-Flavored Markdown.
- I-PDF iphathwa nge-pdf-inspector futhi iguqulelwa ngokuqondile ku-Markdown.
Lesi sakhiwo sisho ukuthi ukuthuthukiswa kwe-serializer kungazuzisa amafomethi amaningi ngesikhathi esisodwa. Isibonelo, ukulungiswa kokubalekisa amathebula akukhawulelwe ku-parser eyodwa yokokufaka.
Ukusebenza nokufaneleka okukhulu
Indawo yokugcina ibika ukuhlolwa kokusebenza kumadokhumenti angama-100 omhlaba wangempela, ahlanganisa amafomethi ayishumi nane ahlolwe. I-anydoc yahlanganisa wonke amafomethi ayishumi nane, yathola isikhathi esimaphakathi sokuguqulwa esingu-4.4 milliseconds, futhi yathola amaphuzu ekhwalithi angu-81 kulokho kuqhathanisa. Ikhwalithi yahlulelwa ngokuphelela, ngesakhiwo, ngokufometha, nangokuhlanzeka.
Imiphumela yokuhlolwa kokusebenza incike kuqoqo ledatha, ku-hardware, nasendleleni yokuhlola, ngakho sebenzisa ukuhlolwa okufakiwe njengobufakazi obuqondene nephrojekthi, hhayi njengesiqinisekiso somthwalo ngamunye wokusebenza. Ukusetshenziswa okufanele kakhulu okuchazwe yiphrojekthi yipayipi elamukela iqoqo elixubile lamadokhumenti e-office futhi elidinga i-Markdown esheshayo, ehlelekile, nengaguquki.
Isiphetho
i-anydoc inikeza inqubo eyodwa yokuguqula ku-Rust, Node.js, Python, esipheqululini, nasemugqeni womyalo. Qala nge-CLI ukuze wenze ukuhlola okusheshayo, bese ukhetha i-binding ehambisana nohlelo lwakho. Sebenzisa ukuguqulwa okusekelwe kumabhayithi kumafayela alayishiwe, cacisa i-CSV ngokusobala, gcina imodeli yedokhumenti lapho izimpahla ezishumekiwe zibalulekile, futhi uphathe amadokhumenti abhaliwe ngokubethela, angalungile, angasekelwa, noma askeniwe njengezimo ezihlukene.
