Convertir PowerPoint a HTML en Java
Descripción General
Este artículo explica cómo convertir una presentación de PowerPoint en formato HTML usando Java. Cubre los siguientes temas.
- Convertir PowerPoint a HTML en Java
- Convertir PPT a HTML en Java
- Convertir PPTX a HTML en Java
- Convertir ODP a HTML en Java
- Convertir diapositiva de PowerPoint a HTML en Java
Java PowerPoint a HTML
Para ver el código de ejemplo en Java para convertir PowerPoint a HTML, consulte la sección a continuación es decir, Convertir PowerPoint a HTML. El código puede cargar varios formatos como PPT, PPTX y ODP en un objeto presentación y guardarlo en formato HTML.
Acerca de la Conversión de PowerPoint a HTML
Usando Aspose.Slides para Android a través de Java, las aplicaciones y desarrolladores pueden convertir una presentación de PowerPoint a HTML: PPTX a HTML o PPT a HTML.
Aspose.Slides proporciona muchas opciones (principalmente de la clase HtmlOptions) que definen el proceso de conversión de PowerPoint a HTML:
- Convertir una presentación completa de PowerPoint a HTML.
- Convertir una diapositiva específica en una presentación de PowerPoint a HTML.
- Convertir medios de presentación (imágenes, videos, etc.) a HTML.
- Convertir una presentación de PowerPoint a HTML responsivo.
- Convertir una presentación de PowerPoint a HTML con notas del orador incluidas o excluidas.
- Convertir una presentación de PowerPoint a HTML con comentarios incluidos o excluidos.
- Convertir una presentación de PowerPoint a HTML con fuentes originales o incrustadas.
- Convertir una presentación de PowerPoint a HTML mientras se utiliza el nuevo estilo CSS.
Usando su propia API, Aspose desarrolló convertidores gratuitos de presentación a HTML: PPT a HTML, PPTX a HTML, ODP a HTML, etc.
Quizás desee consultar otros convertidores gratuitos de Aspose.
Nota
Además de los procesos de conversión descritos aquí, Aspose.Slides también admite estas operaciones de conversión que involucran el formato HTML:
Convertir PowerPoint a HTML
Usando Aspose.Slides, puede convertir una presentación completa de PowerPoint a HTML de esta manera:
- Crear una instancia de la clase Presentation.
- Usar el método Save para guardar el objeto como un archivo HTML.
Este código le muestra cómo convertir un PowerPoint a HTML en Java:
// Instanciar un objeto Presentation que representa un archivo de presentación
Presentation pres = new Presentation("Convert_HTML.pptx");
try {
HtmlOptions htmlOpt = new HtmlOptions();
htmlOpt.getNotesCommentsLayouting().setNotesPosition(NotesPositions.BottomFull);
htmlOpt.setHtmlFormatter(HtmlFormatter.createDocumentFormatter("", false));
// Guardar la presentación en HTML
pres.save("ConvertWholePresentationToHTML_out.html", SaveFormat.Html, htmlOpt);
} finally {
if (pres != null) pres.dispose();
}
Convertir PowerPoint a HTML Responsivo
Aspose.Slides proporciona la clase ResponsiveHtmlController que le permite generar archivos HTML responsivos. Este código le muestra cómo convertir una presentación de PowerPoint a HTML responsivo en Java:
// Instanciar un objeto Presentation que representa un archivo de presentación
Presentation pres = new Presentation("Convert_HTML.pptx");
try {
ResponsiveHtmlController controller = new ResponsiveHtmlController();
HtmlOptions htmlOptions = new HtmlOptions();
htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(controller));
// Guardar la presentación en HTML
pres.save("ConvertPresentationToResponsiveHTML_out.html", SaveFormat.Html, htmlOptions);
} finally {
if (pres != null) pres.dispose();
}
Convertir PowerPoint a HTML con Notas
Este código le muestra cómo convertir un PowerPoint a HTML con notas en Java:
Presentation pres = new Presentation("Presentation.pptx");
try {
HtmlOptions opt = new HtmlOptions();
INotesCommentsLayoutingOptions options = opt.getNotesCommentsLayouting();
options.setNotesPosition(NotesPositions.BottomFull);
// Guardar páginas de notas
pres.save("Output.html", SaveFormat.Html, opt);
} finally {
if (pres != null) pres.dispose();
}
Convertir PowerPoint a HTML con Fuentes Originales
Aspose.Slides proporciona la clase EmbedAllFontsHtmlController que le permite incrustar todas las fuentes en una presentación al convertir la presentación a HTML.
Para evitar que se incrusten ciertas fuentes, puede pasar un arreglo de nombres de fuentes a un constructor parametrizado de la clase EmbedAllFontsHtmlController. Fuentes populares, como Calibri o Arial, cuando se utilizan en una presentación, no tienen que ser incrustadas porque la mayoría de los sistemas ya contienen tales fuentes. Cuando esas fuentes se incrustan, el documento HTML resultante se vuelve innecesariamente grande.
La clase EmbedAllFontsHtmlController soporta herencia y proporciona el método WriteFont que está destinado a ser sobrescrito.
Presentation pres = new Presentation("input.pptx");
try {
// excluir fuentes de presentación predeterminadas
String[] fontNameExcludeList = { "Calibri", "Arial" };
EmbedAllFontsHtmlController embedFontsController = new EmbedAllFontsHtmlController(fontNameExcludeList);
HtmlOptions htmlOptionsEmbed = new HtmlOptions();
htmlOptionsEmbed.setHtmlFormatter(HtmlFormatter.createCustomFormatter(embedFontsController));
pres.save("input-PFDinDisplayPro-Regular-installed.html", SaveFormat.Html, htmlOptionsEmbed);
} finally {
if (pres != null) pres.dispose();
}
Convertir PowerPoint a HTML con Imágenes de Alta Calidad
Por defecto, cuando convierte PowerPoint a HTML, Aspose.Slides genera HTML pequeño con imágenes a 72 DPI y elimina áreas recortadas. Para obtener archivos HTML con imágenes de mayor calidad, debe configurar la propiedad PicturesCompression
(de la clase HtmlOptions
) en 96 (es decir, PicturesCompression.Dpi96
) o en valores superiores.
Este código Java le muestra cómo convertir una presentación de PowerPoint a HTML mientras obtiene imágenes de alta calidad a 150 DPI (es decir, PicturesCompression.Dpi150
):
Presentation pres = new Presentation("InputDoc.pptx");
try {
HtmlOptions htmlOpts = new HtmlOptions();
htmlOpts.setPicturesCompression(PicturesCompression.Dpi150);
pres.save("OutputDoc-dpi150.html", SaveFormat.Html, htmlOpts);
} finally {
if (pres != null) pres.dispose();
}
Este código en Java le muestra cómo generar HTML con imágenes de calidad completa:
Presentation pres = new Presentation("InputDoc.pptx");
try {
HtmlOptions htmlOpts = new HtmlOptions();
htmlOpts.setDeletePicturesCroppedAreas(false);
pres.save("Outputdoc-noCrop.html", SaveFormat.Html, htmlOpts);
} finally {
if (pres != null) pres.dispose();
}
Convertir Diapositiva a HTML
Para convertir una diapositiva específica en un PowerPoint a HTML, debe instanciar la misma clase Presentation (utilizada para convertir presentaciones completas a HTML) y luego usar el método Save para guardar el archivo como HTML. La clase HtmlOptions se puede utilizar para especificar opciones de conversión adicionales:
Este código Java le muestra cómo convertir una diapositiva en una presentación de PowerPoint a HTML:
Presentation pres = new Presentation("Individual-Slide.pptx");
try {
HtmlOptions htmlOptions = new HtmlOptions();
htmlOptions.getNotesCommentsLayouting().setNotesPosition(NotesPositions.BottomFull);
htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(new CustomFormattingController()));
// Guardar archivo
for (int i = 0; i < pres.getSlides().size(); i++)
pres.save("Diapositiva Individual" + (i + 1) + "_out.html", new int[]{i + 1},SaveFormat.Html, htmlOptions);
} finally {
if (pres != null) pres.dispose();
}
public class CustomFormattingController implements IHtmlFormattingController
{
@Override
public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) { }
@Override
public void writeDocumentEnd(IHtmlGenerator generator, IPresentation presentation) { }
@Override
public void writeSlideStart(IHtmlGenerator generator, ISlide slide)
{
generator.addHtml(String.format(SlideHeader, generator.getSlideIndex() + 1));
}
@Override
public void writeSlideEnd(IHtmlGenerator generator, ISlide slide)
{
generator.addHtml(SlideFooter);
}
@Override
public void writeShapeStart(IHtmlGenerator generator, IShape shape) { }
@Override
public void writeShapeEnd(IHtmlGenerator generator, IShape shape) { }
private final String SlideHeader = "<div class=\"slide\" name=\"slide\" id=\"slide%d\">";
private final String SlideFooter = "</div>";
}
Guardar CSS e Imágenes al Exportar a HTML
Usando nuevos archivos de estilo CSS, puede cambiar fácilmente el estilo del archivo HTML resultante del proceso de conversión de PowerPoint a HTML.
El código Java en este ejemplo le muestra cómo usar métodos sobrescribibles para crear un documento HTML personalizado con un enlace a un archivo CSS:
Presentation pres = new Presentation("pres.pptx");
try {
CustomHeaderAndFontsController htmlController = new CustomHeaderAndFontsController("styles.css");
HtmlOptions options = new HtmlOptions();
options.setHtmlFormatter(HtmlFormatter.createCustomFormatter(htmlController));
pres.save("pres.html", SaveFormat.Html, options);
} finally {
if (pres != null) pres.dispose();
}
public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController
{
private final int m_basePath = 0;
// Plantilla de encabezado personalizado
final static String Header = "<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\">\n" +
"<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\n" +
"</head>";
private final String m_cssFileName;
public CustomHeaderAndFontsController(String cssFileName)
{
m_cssFileName = cssFileName;
}
public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation)
{
generator.addHtml(String.format(Header, m_cssFileName));
writeAllFonts(generator, presentation);
}
public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation)
{
generator.addHtml("<!-- Fuentes incrustadas -->");
super.writeAllFonts(generator, presentation);
}
}
Vincular Todas las Fuentes al Convertir Presentación a HTML
Si no desea incrustar fuentes (para evitar aumentar el tamaño del HTML resultante), puede vincular todas las fuentes implementando su propia versión de LinkAllFontsHtmlController
.
Este código Java le muestra cómo convertir un PowerPoint a HTML mientras vincula todas las fuentes y excluye “Calibri” y “Arial” (ya que ya existen en el sistema):
Presentation pres = new Presentation("pres.pptx");
try
{
//Excluir fuentes de presentación predeterminadas
String[] fontNameExcludeList = { "Calibri", "Arial" };
LinkAllFontsHtmlController linkcont = new LinkAllFontsHtmlController(fontNameExcludeList,"C:/Windows/Fonts/");
HtmlOptions htmlOptionsEmbed = new HtmlOptions();
htmlOptionsEmbed.setHtmlFormatter(HtmlFormatter.createCustomFormatter((IHtmlFormattingController) linkcont));
pres.save("pres.html", SaveFormat.Html, htmlOptionsEmbed);
}
finally {
if (pres != null) pres.dispose();
}
Este código Java le muestra cómo se implementa LinkAllFontsHtmlController
:
public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController
{
private final String m_basePath;
public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath)
{
super(fontNameExcludeList);
m_basePath = basePath;
}
public void writeFont
(
IHtmlGenerator generator,
IFontData originalFont,
IFontData substitutedFont,
String fontStyle,
String fontWeight,
byte[] fontData)
{
try {
String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName();
String path = fontName + ".woff"; // puede ser necesaria alguna sanitización de ruta
Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE);
generator.addHtml("<style>");
generator.addHtml("@font-face { ");
generator.addHtml("font-family: '" + fontName + "'; ");
generator.addHtml("src: url('" + path + "')");
generator.addHtml(" }");
generator.addHtml("</style>");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Convertir PowerPoint a HTML Responsivo
Este código Java le muestra cómo convertir una presentación de PowerPoint a HTML responsivo:
Presentation pres = new Presentation("SomePresentation.pptx");
try {
HtmlOptions saveOptions = new HtmlOptions();
saveOptions.setSvgResponsiveLayout(true);
pres.save("SomePresentation-out.html", SaveFormat.Html, saveOptions);
} finally {
if (pres != null) pres.dispose();
}
Exportar Archivos Multimedia a HTML
Usando Aspose.Slides para Android a través de Java, puede exportar archivos multimedia de la siguiente manera:
- Crear una instancia de la clase Presentation.
- Obtener una referencia a la diapositiva.
- Agregar un video a la diapositiva.
- Escribir la presentación como un archivo HTML.
Este código Java le muestra cómo agregar un video a la presentación y luego guardarlo como HTML:
// Cargando una presentación
Presentation pres = new Presentation();
try {
String path = "./out/";
final String fileName = "ExportMediaFiles_out.html";
final String baseUri = "http://www.example.com/";
byte[] videoData = Files.readAllBytes(Paths.get("my_video.avi"));
IVideo video = pres.getVideos().addVideo(videoData);
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video);
VideoPlayerHtmlController controller = new VideoPlayerHtmlController(path, fileName, baseUri);
// Configurando opciones HTML
HtmlOptions htmlOptions = new HtmlOptions(controller);
SVGOptions svgOptions = new SVGOptions(controller);
htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(controller));
htmlOptions.setSlideImageFormat(SlideImageFormat.svg(svgOptions));
// Guardando el archivo
pres.save(fileName, SaveFormat.Html, htmlOptions);
} catch(Exception e) {
} finally {
if (pres != null) pres.dispose();
}