public static bool CanConvert(OnlyOfficeFileType fromFileType, OnlyOfficeFileType toFileType) { bool canConvert = false; switch (fromFileType) { case OnlyOfficeFileType.docx: canConvert = toFileType == OnlyOfficeFileType.odt || toFileType == OnlyOfficeFileType.rtf || toFileType == OnlyOfficeFileType.txt; break; case OnlyOfficeFileType.xlsx: canConvert = toFileType == OnlyOfficeFileType.csv || toFileType == OnlyOfficeFileType.ods; break; case OnlyOfficeFileType.pptx: canConvert = toFileType == OnlyOfficeFileType.odp; break; } return(canConvert); }
public static void MimeToFileType(string mime, out OnlyOfficeDocumentType documentType, out OnlyOfficeFileType fileType) { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.docx; // text if (mime == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.docx; } else if (mime == "application/msword") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.doc; } else if (mime == "application/epub+zip") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.epub; } else if (mime == "application/vnd.oasis.opendocument.text") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.odt; } else if (mime == "application/rtf") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.rtf; } else if (mime == "text/plain") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.txt; } else if (mime == "application/vnd.ms-xpsdocument") { documentType = OnlyOfficeDocumentType.text; fileType = OnlyOfficeFileType.xps; } // spreadsheet else if (mime == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { documentType = OnlyOfficeDocumentType.spreadsheet; fileType = OnlyOfficeFileType.xlsx; } else if (mime == "application/vnd.ms-excel") { documentType = OnlyOfficeDocumentType.spreadsheet; fileType = OnlyOfficeFileType.xls; } else if (mime == "application/vnd.oasis.opendocument.spreadsheet") { documentType = OnlyOfficeDocumentType.spreadsheet; fileType = OnlyOfficeFileType.ods; } else if (mime == "text/csv") { documentType = OnlyOfficeDocumentType.spreadsheet; fileType = OnlyOfficeFileType.csv; } // presentation else if (mime == "application/vnd.openxmlformats-officedocument.presentationml.presentation") { documentType = OnlyOfficeDocumentType.presentation; fileType = OnlyOfficeFileType.pptx; } else if (mime == "application/vnd.ms-powerpoint") { documentType = OnlyOfficeDocumentType.presentation; fileType = OnlyOfficeFileType.ppt; } else if (mime == "application/vnd.oasis.opendocument.presentation") { documentType = OnlyOfficeDocumentType.presentation; fileType = OnlyOfficeFileType.odp; } }
public static void NodeToFileType(Node node, out OnlyOfficeDocumentType documentType, out OnlyOfficeFileType fileType) { MimeToFileType(node.mime, out documentType, out fileType); }
//# Thumbnail avec OnlyOffice // curl -X POST http://hostname/onlyoffice/ConvertService.ashx // -H "Content-Type: application/json" -d // '{"async": false, "outputtype":"jpg","thumbnail":{"aspect": 0, "width": 64, "height": 64 },"filetype":"docx","url": "http://hostname/api/docs/3180/content"}' public static async Task <string> ConvertAsync(Logger logger, HttpContext c, string fileUrl, OnlyOfficeFileType fileType, OnlyOfficeFileType destFileType) { string resFileUrl = null; var uri = new Uri(new Uri(c.SelfURL()), "/onlyoffice/ConvertService.ashx"); logger.Log(LogLevel.Info, $"OnlyOffice ConvertService URL: {uri}"); using (HttpClient client = await HttpClient.CreateAsync(uri)) { HttpClientRequest request = new HttpClientRequest(); request.Method = "POST"; request.Path = uri.PathAndQuery; request.Headers["accept"] = "application/json"; var jsonContent = new JsonObject { ["key"] = Guid.NewGuid().ToString(), ["async"] = false, ["codePage"] = 65001, ["filetype"] = fileType.ToString(), ["outputtype"] = destFileType.ToString(), ["url"] = fileUrl }; request.Content = jsonContent; logger.Log(LogLevel.Debug, $"OnlyOffice ConvertService send message for file convert (url: {uri.ToString()}). Response: {jsonContent.ToString()}"); await client.SendRequestAsync(request); HttpClientResponse response = await client.GetResponseAsync(); if (response.StatusCode == 200) { var json = await response.ReadAsJsonAsync(); logger.Log(LogLevel.Debug, $"OnlyOffice ConvertService for file convert (url: {uri.ToString()}). Response: {json.ToString()}"); if (json.ContainsKey("fileUrl")) { resFileUrl = json["fileUrl"]; } } else { logger.Log(LogLevel.Error, $"OnlyOffice ERROR while asking for file convert (url: {uri.ToString()}) for file {fileUrl}. Got HTTP {response.StatusCode}"); } } return(resFileUrl); }