Yeqa uye kokuyinhloko
Izifundo ze-AI

Guqula Imibhalo Yehhovisi ibe yi-Markdown nge-anydoc

Funda ukufaka nokusebenzisa i-anydoc ukuze uguqule amafayela e-Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV ne-PDF abe yi-GitHub-Flavored Markdown ehambisanayo. Lesi sifundo sihlanganisa i-CLI, izibopho zolimi, i-WebAssembly yesiphequluli, ukutholwa kwefomethi, amafa emibhalo, ukuphathwa kwamaphutha, namathiphu asebenzayo okuhlanganisa.

Guqula Imibhalo Yehhovisi ibe yi-Markdown nge-anydoc

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.docx

Okubili okukhiqizwe ngaphambilini kwenkundla yakho kulandwa ekuqaleni kokusebenza. Ukuze wenze i-anydoc itholakale njengomyalo waphakade, yifake emhlabeni wonke:

npm install -g @firecrawl/anydoc
anydoc --help

Fakela i-Node.js

npm install @firecrawl/anydoc

Fakela i-Python

pip install firecrawl-anydoc

Fakela i-WebAssembly yesiphequluli

npm install @firecrawl/anydoc-wasm

Ungakwazi futhi ukuzama idemo yesiphequluli. Idemo isebenzisa umtapo we-WebAssembly endaweni, ngakho amafayela akhethiwe awasuki emshinini.

Fakela i-Rust

cargo add anydoc

Faka i-Agent Skill

Ukuze ufundise i-agent ehambisanayo ukuguqula amadokhumenti nge-anydoc CLI, faka i-skill efakiwe:

npx skills add firecrawl/anydoc

I-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.docx

Lokhu 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.md

Guqula 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.csv

Sebenzisa 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_markdown alikwazanga 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

  1. i-anydoc ihlola amabhayithi edokhumenti noma ulwazi lwegama lefayela olutholakalayo ukuze inqume ifomethi.
  2. I-parser eqondene nefomethi ifunda okuqukethwe kwe-Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, noma CSV.
  3. I-parser yakha imodeli yedokhumenti eyabiwe equkethe amabhulokhi, izakhi ezisemgqeni, amathebula, imibhalo yaphansi, nezimpahla.
  4. I-serializer evamile iguqula leyo modeli ibe yi-GitHub-Flavored Markdown.
  5. 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.