S-ar putea sa iti faci viata mai usoara daca reusesti sa convingi clientul sa instaleze Microsoft Office Compatibility Pack (care permite folosirea formatului .docx in versiunile mai vechi de Word) sau sa foloseasca si LibreOffice (gratuit inclusiv pentru uz comercial).
DOC ete un format propietar si pe deasupra este si binar. Ceea ce cam coplica treaba. Totusi poti converti doc la docx si da folosesti biblioteca postata sau alta.
Folosind biblioteca postata de @edu, am reusit sa convrtesc doc in docx. Dar are limitari, una din ele fiind ca documentul sa aiba maxim 20 de paragrafe.
using System;
using GemBox.Document;
namespace doc2docx
{
class Program
{
static void Main(string[] args)
{
ComponentInfo.SetLicense("FREE-LIMITED-KEY"); //asta chair este cheia
DocumentModel document = DocumentModel.Load("Lucrare_disertatie_17.06-duminica.doc");
document.Save("demo.docx");
}
}
}
Daca documentul pe care vrei sa il editezi nu este mare, atunci poate ar merge cu acea biblioteca in versiunea free.
Insa este un un hack urat ca sa ii zic asa. Codul de mai sus poate fi transformat in executabil, iar aplicatia ta ar trebuie sa cheme acel executabil si sa ii dea calea catre fisierul doc. In plus, am scris acele linii sub Windows, deci nu stiu daca merge pe o distributie mai recenta de Linux.
Pe langa acsta biblioteca, se poate folosi si COM prin care te legi la Word. Dar cred ca acet lucru nu este portabil, intrucat com este pe Windows
Este posibil ceea ce ceri tu ?
In anumite limite da.
Cel mai bine convingi clientul sa foloeasc formatul docx si nu te mai complici.
Parerea mea.
Suita PhpOffice merge super (noi o folosim pentru xlsx-uri) si e grozava.
Solutia cea mai sigura si care este 100% sigura ca o sa-ti mearga e sa ai o masina Windows cu word instalat pe ea si apoi sa folosesti un script de powershell sau ceva scris in C# sa poti sa folosesti Office.Interop.